
我正在測試在不同網站的 apache2 內部使用的startssl 憑證。
我在 apache2 中使用了一個簡單的虛擬主機配置(都是標準的)。測試的兩個域在 /etc/apache/sites-avaliable 中定義,例如:
測試1.conf
<VirtualHost *:80>
DocumentRoot /var/www/test1/
ServerName www.test1.com
ErrorLog ${APACHE_LOG_DIR}/error_test1.log
CustomLog ${APACHE_LOG_DIR}/access_test1.log combined
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot /var/www/test1/
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /etc/ssl/certs/ssl.crt
SSLCertificateKeyFile /etc/ssl/private/ssl_dec.key
SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
</VirtualHost>
測試2.conf
<VirtualHost *:80>
DocumentRoot /var/www/test2/
ServerName test2.com
CustomLog ${APACHE_LOG_DIR}/wp_test2.log combined
ErrorLog ${APACHE_LOG_DIR}/wp_test2_error.log
RewriteEngine off
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot /var/www/test2/
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /etc/ssl/certs/think.crt
SSLCertificateKeyFile /etc/ssl/private/think_dec.key
SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
</VirtualHost>
我發現第二個網域不接受 ssl 憑證。
出現 error_bad_cert_doamin 因為表示 test2 正在使用 test1 憑證。如果我只使用一個網域就可以完美地工作。問題可能出在哪裡?
答案1
您還必須在 SSL 配置中設定伺服器名稱:
<VirtualHost *:443>
ServerName test1.com
ServerAdmin [email protected]
DocumentRoot /var/www/test1/
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /etc/ssl/certs/ssl.crt
SSLCertificateKeyFile /etc/ssl/private/ssl_dec.key
SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
</VirtualHost>
<VirtualHost *:443>
ServerName test2.com
ServerAdmin [email protected]
DocumentRoot /var/www/test2/
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /etc/ssl/certs/think.crt
SSLCertificateKeyFile /etc/ssl/private/think_dec.key
SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
</VirtualHost>