Apache配置多个SSL(https)站点(VirtualHost)

雪域幽狐 2018-01-13 18:11 阅读:19449


首先确认下载到的Apache支持SSL。如果是window版本,在apache bin目录下能看到openssl.exe。如果是Linux,在/etc/httpd/conf.d目录下可见到ssl.conf,如果没有,执行yum -y install mod_ssl命令安装。
    然后在httpd.confg文件打开LoadModule ssl_module modules/mod_ssl.so,即去掉该行前的注释。打开Include conf/extra/httpd-ssl.conf。Linux下不用执行。
    ssl.conf配置参考如下:
NameVirtualHost *:443
<VirtualHost *:443>
    ServerName www.nowfox.com
    ProxyPass / http://127.0.0.1:8000/www/
    ProxyPassReverse / http://127.0.0.1:8000/www/
    ProxyPassReverseCookiePath /www /
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    # 修改加密套件如下
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
    SSLHonorCipherOrder on
    # 证书公钥配置
    SSLCertificateFile E:/cert/www/public.pem
    # 证书私钥配置
    SSLCertificateKeyFile E:/cert/www/www.key
    # 证书链配置,如果该属性开头有 '#'字符,请删除掉
    SSLCertificateChainFile E:/cert/www/chain.pem
</VirtualHost>
<VirtualHost *:443>
   ServerName login.nowfox.com
   ProxyPass / http://127.0.0.1:8000/login/    ProxyPassReverse / http://127.0.0.1:8000/login/
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    # 修改加密套件如下
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
    SSLHonorCipherOrder on
    # 证书公钥配置
    SSLCertificateFile E:/cert/login/public.pem
    # 证书私钥配置
    SSLCertificateKeyFile E:/cert/login/login.key
    # 证书链配置,如果该属性开头有 '#'字符,请删除掉
    SSLCertificateChainFile E:/cert/login/chain.pem
</VirtualHost>
    如果Apache在启动过程中报错,windows下可到 计算机管理->系统工具->事件查看器->windows 日志->应用程序 进行查看,根据日志进行对应的修改。
常见问题:
1、The Apache service named  reported the following error:
>>> SSLSessionCache: Invalid argument: size has to be >= 8192 bytes
在64位windows下安装32位Apache时,如果httpd-ssl.conf里的SSLSessionCache目录有空格,会出此问题,修改为一个无空格目录。
2、(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:443
(1)端口被占用,找到对应的进行并结束。
(2)Linux下查看,无进程占用443端口,确认/etc/httpd/conf.d下只有一个ssl.conf,无其他SSL配置、备份文件,如果有,apache会都载入,造成冲突。原因是http.conf中IncludeOptional conf.d/*.conf

0条评论

登陆后可评论