|
在小程序的文档里我们看到这么一个重要接口说明。
wx.request发起的是https请求。一个微信小程序,同时只能有5个网络请求连接。
而小程序需要同服务器交互的时候,必定要用到这个接口。 https?
对于大部分同学来说,了解https的详细过程似乎没太大必要,我们直接先说第一个结论。
自己签发的证书是不被公众认可的,所以就要找大机构拿证书。这时候就要交证书的费用。 比如下图:
最近的某Sign公司的证书又出了信任危机,有没有更有性价比的方案呢?有!!同城圈联盟现在就教你免费获得靠谱的https证书!
我们先教大家如何获取和配置证书!下面一段适合程序员来看。非程序员需要配置的,可以联系离你最近的程序员(比如页面底部那个)请教他。
前提:Linux服务器,Python2.7
首先从著名同性交友社区下载需要的脚本和配置模板
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.conf wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.sh chmod +x letsencrypt.sh
然后可以看到 letsencrypt.conf 的内容是这样的
DOMAIN_KEY是保存的文件名,比如我们设成 sub.mydomain.cn.key DOMAIN_DIR是WEB的根目录,也就是/index.html, /index.php … 所在的那个目录。 DOMAINS是这个WEB目录上绑定的域名。常见的就是根域或是www域,或是你需要的子域名。
比如我修改成这个样子
ACCOUNT_KEY="letsencrypt-account.key" DOMAIN_KEY=“sub.mydomain.com.key" DOMAIN_DIR=“/var/www/path/to/mydomain/" DOMAINS=“DNS:sub.mydomain.com"
然后确认 sub.mydomain.com 是可以正常访问的。因为生成证书的时候会对域名可访问性做验证。
然后执行 ./letsencrypt.sh letsencrypt.conf
如果正常的话,这时候会在当前目录下生成一堆文件。 其中会有一个 sub.chained.crt 和 sub.mydomain.com.key 。这两个文件一会儿我们会用到。 现在去 nginx 下添加一个443端口的虚拟主机。
server { listen 443; ssl on; ssl_certificate /root/letsencrypt/sub.chained.crt; ssl_certificate_key /root/letsencrypt/sub.mydomain.com.key; server_name sub.mydomain.com; index index.php; root /var/www/path/to/mydomain/; if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-e $request_filename){ rewrite (.*) /index.php; } location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; include fastcgi.conf; } }
红字部分需要重点看!(敲黑板) 重启 Nginx ,访问 https://sub.mydomain.com 就发现有绿色的证书标志啦! 对的,这个过程中我们没花一分钱。
证书都会过期的嘛,但这个证书是可以免费续期的! 先在 letsencrypt.sh 的最后加一行 service nginx reload 表示执行成功之后重启一下 Nginx。 然后在crontab里加一行,表示每个月1号0点自动续期,这样就可以保证这个证书状态一直是正常的了。记得改!路!径!
0 0 1 * * /etc/nginx/certs/letsencrypt.sh /etc/nginx/certs/letsencrypt.conf >> /var/log/lets-encrypt.log 2>&1
如果你用的是Apache,那把 Nginx 配置https的方法换成 Apache 对应的就可以了,证书获取方法是不一样的。
这个证书实际是从 letsencrypt.org 项目获得的。
Let’s Encrypt CA项目由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,向网站自动签发和管理免费证书,加速将Web从HTTP过渡到HTTPS。ISRG则是开发Let’s Encrypt CA的非营利组织。而目前,Let's Encrypt项目和互联网安全研究组(ISRG)都有Linux基金会托管。
所以证书的干爹还是靠谱的。 写这个教程的同学也是靠谱的。
可能有的同学会找到官方的一个脚本来安装证书,为什么本文不推荐?因为那个脚本需要暂停Web服务!这篇文章的方法就不需要长时间暂停Web服务了。
现在你可以创建一个 https 站点,然后通过小程序调用这个接口了。有点爽么? |