How to support multi domain https binding on a single ip server with IIS server(low than IIS 8.5)?
如何在一台机器上,同时绑定多个HTTPS证书到IIS?
理论上,IIS 8.5以下的版本是不支持多个HTTPS证书绑定到一个IP地址的。
我们可以通过中间增加一层的方式解决问题:
首先让IIS不要绑定任何HTTPS证书,也不要监听443端口。
然后我们在服务器安装一个Apache,可以去官网下载Apache。
然后修改Apache的conf的httpd.conf文件,增加类似行:
然后在LoadModule这些地方,找到
#LoadModule proxy_module modules/mod_proxy.so
去掉前面的#变成:
LoadModule proxy_module modules/mod_proxy.so
找到
#LoadModule proxy_http_module modules/mod_proxy_http.so
去掉# 变成 LoadModule proxy_http_module modules/mod_proxy_http.so
把LoadModule ssl_module modules/mod_ssl.so如果前面有#,也去掉#
然后修改vhost.conf文件(没有就创建一个),增加类似代码:
<VirtualHost *:443>
# 可以改成其他名字如 api.站点1.com
ServerName www.站点1.com
SSLEngine on
SSLCertificateFile /path/to/站点证书.pem
SSLCertificateKeyFile /path/to/站点证书Key文件.key
SSLCertificateChainFile /path/to/站点证书Chain文件.pem
ProxyPass / http://www.站点1.com/
ProxyPassReverse / http://www.站点1.com/
</VirtualHost>
<VirtualHost *:443>
# 或者 doc.站点1.com
ServerName www.站点2.com
SSLEngine on
SSLCertificateFile /path/to/站点2.pem
SSLCertificateKeyFile /path/to/站点2key.pem
SSLCertificateChainFile /path/to/站点2chian.pem
ProxyPass / http://www.站点2.com/
ProxyPassReverse / http://www.站点2.com/
</VirtualHost>