欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

为苹果ATS和微信小程序搭建 Nginx + HTTPS 服务

来源:本站整理 作者:佚名 时间:2017-01-23 TAG: 我要投稿

 昨天测试开发微信小程序,才发现微信也要求用HTTPS加密数据,想来是由于之前苹果的ATS审核政策的缘故吧,微信想在苹果上开放小程序必然也只能要求开发者必须使用HTTPS了,于是在服务器上测试安装Nginx+HTTPS服务。

安装 HTTPS 最麻烦的问题应该就是获取证书了,证书感觉种类也挺复杂的,有好几种,单域、泛域、多域。。。还有个种标准乱七八糟的感觉,而且收费很高,还是每年买的。

现在各个云服务商也都有提供各种基础功能的免费证书,但似乎很多只对单域免费,这里的单域是指每个二级域名都算是一个域名,每个二级域名都需要单独配置证书。

我使用的是免费的 Let's encrypt 证书,支持苹果ATS标准。

https://letsencrypt.org/

Let's Encrypt 项目旨在让每个网站都能使用 HTTPS 加密,该项目获得了 Mozilla、思科、Akamai、IdenTrust 和 EFF 等组织的支持, 由 Linux 基金会托管

我用的是阿里云的服务器,操作系统版本:CentOS7.0

提醒:在一切开始前,需要先注意看看服务器剩余内存,我一开始用的是最低配的测试服务器,剩余可用内存只有70MB左右,结果服务器直接挂了,所以最好先腾出个300MB内存再来。

另外,就是服务器必须绑定域名且是外网可以直接访问的才行,若是内网或虚拟机上是不行的,因为证书安装时需要通过域名访问数据的,否则不能生成证书。

SSL labs 最终配置测试结果,

好了,下面上配置流程:

一、升级系统 OpenSSL 版本

我第一次安装时使用的 OpenSSL 还是系统默认安装版本 1.0.1e,安装完后在 SSL labs 测试安全性居然是个 F 等级,于是升级到1.1.0c 之后变成了A,不过后来看了很多文章后,发现大家推荐使用的是 1.0.2j 版本,据说是因为 1.1 官方支持是到 2018年,而且很多软件还不能兼容,1.0.2 是支持到2019年的。至于实际用哪个看你的其他需求了。。。

wget https://www.openssl.org/source/openssl-1.1.0c.tar.gz
tar -zxvf openssl-1.1.0c.tar.gz 
cd openssl-1.1.0c/
./config --prefix=/usr shared zlib
make 
make install

二、修改Nginx配置以支持 .well-known 目录的访问

证书安装时会在网站根目录下自动生成 .well-known 目录,必须让外网能够访问该目录下的文件才行,否则会认证失败。

对于 Nginx 的版本,我测试时使用过的最低版本是 nginx1.8.1,建议使用当前最新的稳定版 nginx1.10.2

如果之前 nginx.conf 中存在类似下面的规则

location ~ /\. {
        deny all;
    }

需要增加下面配置:注意,因为后面证书还需要自动续期,所以这个配置后面还是需要用到的,不能删除。

location ~ /.well-known {
        allow all;
    }

三、安装 certbot-auto

1, 需要先安装 epel

yum install epel-release

2, 先修改为使用国内的 pip 源

```mkdir ~/.pip

cat > ~/.pip/pip.conf <<EOF

[global]

index-url = https://pypi.doubanio.com/simple/

[install]

trusted-host=pypi.doubanio.com

EOF

3, 安装 certbot 依赖包

mkdir /usr/local/certbot

cd /usr/local/certbot

wget https://dl.eff.org/certbot-auto --no-check-certificate

chmod +x ./certbot-auto

./certbot-auto -n

安装时错误:

Delta RPMs disabled because /usr/bin/applydeltarpm not installed

![为苹果ATS和微信小程序搭建 Nginx + HTTPS 服务](http://img.blog.csdn.net/20170122140144795?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXptZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
解决方法:

yum provides '*/applydeltarpm'

yum install deltarpm

安装依赖的时候会下载大量包可能看着没动静,注意top看看是否有python的进程在跑

我安装完后,出现下面信息,可以直接忽略的,没有问题的

> Saving debug log to /var/log/letsencrypt/letsencrypt.log
Missing command line flags. For non-interactive execution, you will need to specify a plugin on the command line.  Run with '--help plugins' to see a list of options, and see https://eff.org/letsencrypt-plugins for more detail on what the plugins do and how to use them.

####四、生成证书

> 生成证书,有多种方式,选择你需要的一种
admin@mail.com 为管理员的邮箱,请先替换为您的邮箱地址

1. 网站一个域名的证书

./certbot-auto certonly --email admin@mail.com --agree-tos --webroot -w /home/wwwroot/yourwebsite -d www.yourdomain.com

2. 一个网站多个域名只生成一个证书

./certbot-auto certonly --email admin@mail.com --agree-tos --webroot -w /home/wwwroot/yourwebsite -d www.yourdomain.com -d m.yourdomain.com

3. 多个网站多个域名生成多个证书

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载