web-dev-qa-db-ja.com

非標準ポート経由のSSL?

1つのサーバーにa.comb.comの2つの異なるサイトがあります。

名前付き仮想ホストをsslポートで使用すると、IEが機能しなくなります。

そこで、b.comのSSLにポート444を使用することにしました。ただし、すべてのブラウザでエラーメッセージが表示されるようです。

Chrome: Error 107 ssl protocol error
Firefox: Error code: ssl_error_rx_record_too_long
Epiphany: SSL handshake failed

うーん..理由はわかりませんが、https://example.com:1443のようにアクセスできるWebサイトを見たことがあります。

それとも私は何かを逃しましたか?


NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/Apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    NameVirtualHost *:443
    NameVirtualHost *:444
    Listen 443
    Listen 444
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
    Listen 444
</IfModule>

b。サイト:

<VirtualHost *:444>
    ServerName  www.b.com:444
    ServerAdmin [email protected]

    LogLevel  error
    ErrorLog  /var/log/Apache2/b_error.log
    CustomLog /var/log/Apache2/b_access.log combined

    DocumentRoot ...

    <Directory ...>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    SSLEngine on
    SSLCertificateFile    /etc/ssl/certs/b.crt
    SSLCertificateKeyFile /etc/ssl/private/b.pem

</VirtualHost>

証明書を生成するためのCA構成ファイル:

[ca]
default_ca              = CA_default

[CA_default]
x509_extensions         = root_ca_extensions

[req]
default_bits            = 4096
default_keyfile         = 
distinguished_name      = req_distinguished_name
attributes              = req_attributes
Prompt                  = no
x509_extensions         = v3_ca
req_extensions          = v3_req

[req_distinguished_name]
C     = ...
ST   = ..
O     = ...
OU   = ..
CN   = ...
emailAddress        = [email protected]

[req_attributes]

[root_ca_extensions]
basicConstraints        = CA:true

[v3_ca]
basicConstraints        = CA:true

[v3_req]
basicConstraints        = CA:false
keyUsage                = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName          = @alt_names

[alt_names]
DNS.1 = b.com
DNS.2 = www.b.com
2
Xiè Jìléi

答えはイエスです。

それは私の間違いです。127.0.0.1 www.b.com/etc/hostsを設定しました。次に、リモートサーバーのApache構成ファイルを変更しても、ブラウザーは常にwww.b.comをローカルホストに解決します。ローカルホストでは証明書が壊れています。

1
Xiè Jìléi

これが問題であるかどうかは100%わかりませんが、ServerName行から:444を削除してみてください。

ServerName  www.b.com

ブラウザはそのポートに接続するため、ポートは必要ありませんが、ホストヘッダーはどのポートが使用されていてもwww.b.comのままです。

0
Mike