1. http 和https在开始行动之前,我们必须先搞清一个问题,http 和https 的区别是什么?要配置https 需要执行哪些步骤的操作?关于http 和https 网上也是有大量的文章来讨论,也是面试时非常常见的一个问题,所以这里就不细讲。简单来说,https 相对于http 的区别就在于https 是使用密文传输,而http 是使用明文传输的,这也是https 比http 更安全的原因。既然是密文传输,那么是用什么进行加密的?加密操作是由服务器主导的,那我们又凭什么相信服务器不是由坏人冒充的?这就是https 要解决的事情。具体细节可参考: https 原理详解
看完以上加密细节操作可以得出一个阶段性的结论,要完成https 的配置实际上就是在服务器上安装一个由CA(公信机构)颁发的证书和一对非对称秘钥(包含公钥和私钥)。于是在小程序应用中完成https 的配置流程可以概括为以下几步:获取证书、在服务器上安装证书、小程序后台添加合法域名。
1. 域名
在万网购买,略
2. 云服务器
阿里云购买,略
3. 安装lnmp
使用lnmp.org程序,略
4. 申请证书
阿里云-管理控制台-安全(云盾)-证书服务-购买证书
证书类型: 免费型DV SSL
选择品牌: Symantec
购买成功后,绑定域名,配置DNS解析记录生效
5. 配置HTTPS服务器
Nginx的安装目录下创建cert目录
下载证书,放到cert目录
修改nginx.conf文件,加入443端口及证书目录
server { listen 80; listen 443 ssl; #listen [::]:80; server_name cet.fangbei.org; index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/cet.fangbei.org; include none.conf; #error_page 404 /404.html; include enable-php.conf; ssl_certificate /usr/local/nginx/cert/214130435490250.pem;//---------------- ssl_certificate_key /usr/local/nginx/cert/214130435490250.key;//-------------- location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /\. { deny all; } access_log off; }
重启lnmp即可。
6. 使用https访问网站
支持80端口和443访问
https访问时,可以看到证书