本篇文章主要讲述3个方面的内容,如下:
1、SSL证书的获取
2、服务器 Nginx SSL 证书的配置。
3、如何兼容80端口和443端口以及为什么要同时兼容这两个端口。
1、SSL证书的获取
https 是微信小程序官方规定的,必须实现服务器的https 访问。那么就涉及到SSL证书了。目前市场上有好多专门的服务器在做SSL服务,SSL也根据不同的证书标准分为了不同的等级,当然根据不同的服务标准,收费的标准也是不一样的。我这里介绍几个可以免费申请SSL证书的平台。 腾讯云平台 、阿里云平台等。这些都是可以免费申请SSL的。
腾讯云 SSL证书免费获取说明URL https://jingyan.baidu.com/article/c14654138cfd930bfdfc4c10.html
2、服务器 Nginx SSL 证书的配置
直接上代码,看如下Nginx.conf 代码片段
server {
listen 443 ssl;
ssl on;
ssl_certificate_key /usr/local/ssl/2_www.xxxxxx.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#charset koi8-r;
location / {
root /var/www/pcms;
index index.html index.htm index.php;
}
#error_page 404 /404.html;
其中 ssl_certificate 和 ssl_certificate_key 就是我们在云平台上免费得到的两个证书,分别配置好就可以了。
3、如何兼容80端口和443端口以及为什么要同时兼容这两个端口
通过第2步Nginx 的配置且重启后,就可以进行https 访问了。但是又一个问题出现了。就是我们之前的网站是 http 访问的。里面的资源,比方说已经有的图片存储路径,都是http访问的。这样配置后,发现好多之前的图片访问不了了。所以我们在这里,在 443 的基础上,还需要同时兼容原来的80端口,实现https 和 http 都可以正常访问才可以。配置两个端口同时兼容,有两种方法,方法一是可以通过 rewrite 配置,使http 访问目标网站的链接,自动转换成 https 来访问。这样可以解决问题。我这里说下第二种方法,通过Nginx 配置来实现,如下:
server {
listen 80;
listen 443 ssl;
# ssl on;
ssl_certificate_key /usr/local/ssl/2_www.xxxxxx.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#charset koi8-r;
location / {
root /var/www/pcms;
index index.html index.htm index.php;
}
#error_page 404 /404.html;
需要特别注意的是: ssl on;必须注释掉。
通过以上的3个步骤,基本上你的https 就配置好了。可以正常使用了。