如何为通配符SSLconfigurationApache 2.4.6

Apache 2.4.6 Ubuntu 13.10

我试图找出如何configuration上面的Apache使用通配符SSL证书。 到目前为止,我没有任何运气。 我要么得到错误,Apache将无法启动,或者我从浏览器中得到一个SSL错误。

自升级到2.4.6以来,我一直没有能够得到Apache启动,除非我删除SSLconfiguration指令。

/etc/apache2/sites-enabled/default-ssl.conf

<VirtualHost _default_:443> DocumentRoot /var/www/wiki ErrorLog /var/log/apache2/wiki.ssl-error.log SSLEngine On SSLCertificateFile /etc/ssl/certs/40B75eaaadb70.crt SSLCertificateKeyFile /etc/ssl/private/xxx.com.key #SSLCACertificateFile /etc/ssl/certs/gd_bundle-g2-g1.crt </VirtualHost> <VirtualHost *:443> DocumentRoot /var/www/wiki ServerName wiki.xxx.com </VirtualHost> <VirtualHost *:443> DocumentRoot /var/www/assets/itdb ServerName assets.xxx.com </VirtualHost> <VirtualHost *:443> DocumentRoot /var/www/support19 ServerName support.xxx.com </VirtualHost>` 

/etc/apache2/ports.conf

 # If you just change the port or add more ports here, you will likely also # have to change the VirtualHost statement in # /etc/apache2/sites-enabled/000-default Listen 80 <IfModule ssl_module> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet 

error.log中的错误

 [Wed Jun 18 22:34:44.561219 2014] [ssl:emerg] [pid 2268] AH02312: Fatal error initialising mod_ssl, exiting. [Wed Jun 18 22:37:17.092027 2014] [mpm_itk:notice] [pid 2321] AH00163: Apache/2.4.6 (Ubuntu) PHP/5.5.3-1ubuntu2.3 OpenSSL/1.0.1e configured -- resuming normal operations [Wed Jun 18 22:37:17.092162 2014] [core:notice] [pid 2321] AH00094: Command line: '/usr/sbin/apache2' [Wed Jun 18 22:40:05.230425 2014] [mpm_itk:notice] [pid 2321] AH00169: caught SIGTERM, shutting down [Wed Jun 18 22:41:55.732150 2014] [ssl:emerg] [pid 2477] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0) [Wed Jun 18 22:41:55.732264 2014] [ssl:emerg] [pid 2477] AH02312: Fatal error initialising mod_ssl, exiting. [Wed Jun 18 22:49:57.213468 2014] [ssl:emerg] [pid 2520] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0) [Wed Jun 18 22:49:57.213576 2014] [ssl:emerg] [pid 2520] AH02312: Fatal error initialising mod_ssl, exiting. [Wed Jun 18 22:53:43.883013 2014] [mpm_itk:notice] [pid 2568] AH00163: Apache/2.4.6 (Ubuntu) PHP/5.5.3-1ubuntu2.3 OpenSSL/1.0.1e configured -- resuming normal operations [Wed Jun 18 22:53:43.883126 2014] [core:notice] [pid 2568] AH00094: Command line: '/usr/sbin/apache2' 

我改变了default-ssl.conf文件,如下所示:

 <VirtualHost *:443> DocumentRoot /var/www/wiki ErrorLog /var/log/apache2/wiki.ssl-error.log SSLEngine On SSLCertificateFile /etc/ssl/certs/40B75eaaadb70.crt SSLCertificateKeyFile /etc/ssl/private/xxx.com.key ServerName wiki.xxx.com </VirtualHost> <VirtualHost assets.xxx.com:443> DocumentRoot /var/www/assets ServerName assets.xxx.com SSLEngine On SSLCertificateFile /etc/ssl/certs/40B75eaaadb70.crt SSLCertificateKeyFile /etc/ssl/private/xxx.com.key </VirtualHost> 

通过上面的configuration文件,SSL可以工作,但似乎忽略了第二个虚拟主机。 如果我使用主机支持或资产,它只显示支持网站。 我也尝试用support.xxx.comreplace*:443和默认 :443,但是当我这样做时,我又回到了浏览器中的SSL错误。 因此,我唯一能够使SSL工作的事情只允许显示一个站点。 再次,我使用通配证书。

其实为了避免configuration所有主机的SSL位,你可以编辑mods-enabled / ssl.conf文件。 只要您为所有站点指定了SSLEngine,那么您在此处所做的任何更改都应该用于启用SSL的所有站点

错误说Apache正在为某些虚拟主机寻找SSL证书configuration,但没有find它。

你确实有三个configuration的虚拟主机缺lessSSL指令。 尝试添加它们。