概述
小程序与普通移动端开发的一个很大的不同之处就在于小程序的ajax 请求是使用https 协议与服务器端进行通信的。所以要开发小程序,首先要搭建https 服务器。这篇文章记录了在nginx 做转发的服务器中如何一步步完成https 配置。
1. http 和https
在开始行动之前,我们必须先搞清一个问题,http 和https 的区别是什么?要配置https 需要执行哪些步骤的操作?关于http 和https 网上也是有大量的文章来讨论,也是面试时非常常见的一个问题,所以这里就不细讲。简单来说,https 相对于http 的区别就在于https 是使用密文传输,而http 是使用明文传输的,这也是https 比http 更安全的原因。
既然是密文传输,那么是用什么进行加密的?加密操作是由服务器主导的,那我们又凭什么相信服务器不是由坏人冒充的?这就是https 要解决的事情。具体细节可参考: https 原理详解
看完以上加密细节操作可以得出一个阶段性的结论,要完成https 的配置实际上就是在服务器上安装一个由CA(公信机构)颁发的证书和一对非对称秘钥(包含公钥和私钥)。于是在小程序应用中完成https 的配置流程可以概括为以下几步:获取证书、在服务器上安装证书、小程序后台添加合法域名。
2. 开始行动
2.1 获取证书
一般服务器提供商(比如说阿里云)都会提供证书服务,但是通常是需要花钱购买的。而通过FreeSSL 我们可以获得免费的证书,具体操作流程如下:
- 注册并登录:https://freessl.org
- 输入你的域名(域名需要已经备案,具体怎么备案可以去服务器提供商管理平台查看),点击创建证书,会获得以下结果:
- 登录域名管理网站(我的是阿里云),选择域名与网站 -> 云解析DNS -> 添加解析,并将上图中的信息填写到相应的位置,然后点击确认。
- 几分钟后,在FreeSSL 页面中点击验证,验证通过后可以下载证书,下载下来的证书中包含了CA 证书和对称秘钥(私钥只会在第一次被下载下来,所以要做好备份!)
2.2 服务器安装证书
获取到证书以后,我们再来到服务器上进行安装,所谓的安装实际上就是将上一步中下载下来的证书(包含两个文件,一个是.pem,一个是.key,.pem 中包含两个证书)放在服务器上的某一个位置,然后修改nginx 配置文件使之以https 协议与客户端进行通信。
- 证书文件放置位置可以选择:/etc/nginx/certs,没有这个位置的话可以新建
- nginx 配置文件主要修改如下(如果没有自行修改的话,nginx 配置文件位置为 /usr/local/nginx/conf/nginx.conf):
server {
listen 80;
# about ssl
listen 443 ssl;
ssl_certificate /etc/nginx/certs/full_chain.pem;
ssl_certificate_key /etc/nginx/certs/private.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
# server name
server_name xxx.xxx.xxx;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
2.3 小程序后台配置合法域名
登录小程序后台,点击设置 -> 开发设置,添加你自己的域名为合法域名即可。
这里要注意的一个问题是,微信公众平台和小程序后台是不能绑定一个邮箱的,所以两个平台如果都有账号的话不要记混了。
3. 可能遇到的问题
3.1 问题一:the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/ng...
解决办法:参考 https://www.cnblogs.com/ghjbk/p/6744131.html 安装ssl_module 即可
3.2 问题二:"/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解决办法:
// 使用nginx -c的参数指定nginx.conf文件的位置
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
3.3 问题三:配置完成后无法通过https 访问页面,并且在nginx access log 中接收不到访问记录
解决办法:记得阿里云开放443 端口啊!
最后
以上就是甜美百褶裙为你收集整理的小程序:配置Https服务器(Nginx)的全部内容,希望文章能够帮你解决小程序:配置Https服务器(Nginx)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复