最近因为微信小程序的开发需要用到接口必须是https方式调用,所以就将自己的服务器从http升级到了https,但在升级调整过程中遇到了一些问题,经过反复测试最终还是找到的原因。
我使用的是阿云服务器,服务器上若干个网站都是采用二级域名的形式进行访问,比如我的域名mdaima.com,还有一些子站是a.mdaima.com、b.mdaima.com等等。前期一直是http方式访问,没有任何问题,调整为https就遇到了很多问题。
两个https访问配置都完成后,发现第二个网站访问时浏览器显示的是第一个网站的证书,而将第一个网站的内容去掉,则显示正常,由此可以判断是只识别了第一个证书,经过网上查询资料,才知道了具体问题的原因。访问网站看到的证书不是我安装的那张,遇到这种问题,我们可以检查一下是否在服务器相同的IP以及端口上,只安装了一张证书,SSL协议是只允许在一个IP端口上返回一张证书。解决这个问题可以通过分配不同的端口号或者不同的IP地址。后来我将第二个网站换为444端口即正常了,但觉得体验不好并没有采用,只保留了第一个站的HTTPS方式。如果不是因为证书经费昂贵可以选择申请通配符类的证书就可以解决这个问题。
阿里提供的多个域名https常规设置方式的方法记录一下:
一、下载证书
文件说明:
1. 证书文件214524938199999.pem,包含两段内容,请不要删除任何一段内容。
2. 如果是证书系统创建的CSR,还包含:证书私钥文件214524938199999.key、证书公钥文件public.pem、证书链文件chain.pem。
二、配置服务器
( 1 ) 在Apache的安装目录下创建cert_1目录,并且将下载的全部文件拷贝到cert_1目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert_1目录下并且命名为214524938199999.key;
( 2