11
服务器多站点多域名HTTPS的实现

服务器多站点多域名HTTPS的实现


假设有这样一个场景,我们有多个站点(例如site1.www.wa57.com,site2.wa57.com和site3.126vps.com)绑定到同一个IP:PORT,并区分不同的主机头。我们为每一个SSL站点申请并安装了证书。在浏览网站时,用户仍看到证书不匹配的错误。


IIS

当一个https的请求到达IIS服务器时,https请求为加密状态,需要拿到相应的服务器证书解密请求。由于每个站点对应的证书不同,服务器需要通过请求中不同的主机头来判断需要用哪个证书解密,然而主机头作为请求的一部分也被加密。最终IIS只好使用第一个绑定到该IP:PORT的站点证书解密请求,从而有可能造成对于其他站点的请求失败而报错。


解决方案


第一种解决方案将每个https站点绑定到不同的端口。但是这样的话客户端浏览网页时必须手动指定端口,例如 https://www.wa57.com:444


第二种解决方案是为每个站点分配一个独立的ip,这样冲突就解决了,甚至主机头也不用添加了。


第三种解决方案是使用通配证书。我们采用通配证书颁发给.www.wa57.com,对于我们的示例中,应该采用颁发给.marei.com的证书,这样任何访问该domain的请求均可以通过该证书解密,证书匹配错误也就不复存在了。


第四种解决方案是升级为IIS8,IIS8中添加的对于SNI(Server Name Indication)的支持,服务器可以通请求中提取出相应的主机头从而找到相应的证书。




Nginx

打开 Nginx 安装目录下 conf 目录中打开 nginx.conf 文件,找到


server {

listen 443;

server_name domain1;

ssl on;

ssl_certificate 磁盘目录/订单号1.pem;

ssl_certificate_key 磁盘目录/订单号1.key;

ssl_session_timeout 5m;

ssl_protocols TLSv1TLSv1.1TLSv1.2;

ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;

ssl_prefer_server_ciphers on;

location /{

root html;

index index.html index.htm;



在上述基础上,再添加另一段配置




server {

listen 443;

server_name dommain2;

ssl on;

ssl_certificate 磁盘目录/订单号2.pem;

ssl_certificate_key 磁盘目录/订单号2.key;

ssl_session_timeout 5m;

ssl_protocols TLSv1TLSv1.1TLSv1.2;

ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;

ssl_prefer_server_ciphers on;

location /{

root html;

index index.html index.htm;

通过上述配置在Nginx中支持多个证书


Apache

# Apache配置HTTPS虚拟主机共享443端口

Listen443

NameVirtualHost*:443

<VirtualHost*:443>

ServerName www.wa57.com

SSLCertificateFile common.crt;

SSLCertificateKeyFile common.key;

SSLCertificateChainFile ca.crt

</VirtualHost>

#在上述基础上,再添加另一段配置,实现第二个虚拟主SSL

<VirtualHost*:443>

ServerName www.wa57.com

SSLCertificateFile common2.crt;

SSLCertificateKeyFile common2.key;

SSLCertificateChainFile ca2.crt

</VirtualHost>


好用的香港云主机、香港云空间、香港服务器的相关问题,可以咨询挖主机网络wa57.com,安全稳定、速度快、易操作,专业技术7×24小时服务。


部分内容、图片来源于互联网,如有侵权请联系我们挖主机wa57.com删除!


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!