站点支持https访问已经越来越普及,而且有些第三方接口仅支持https调用,例如小程序接口。本文不对SSL做过多解释,如需了解SSL可参考百度百科或其它网络资源。有多种渠道可申请免费SSL证书,这里仅介绍如何通过KeyManager申请证书,以及证书在服务器端的配置。
1、工具
- 站点:https://freessl.cn/
- 软件:KeyManager(本文使用Mac版),下载并安装,下载地址。
- 域名:自备域名(本文使用 crane.cool)
- 服务器:安装了nginx的公网服务器(本文使用Centos系统服务器)
2、 证书申请
证书申请过程需要https://freessl.cn/站点和KeyManager工具配合使用。
2.1 申请CSR
CSR(Certificate Signing Request)即证书签名请求文件,详细介绍可参考百度百科或其它网络资源。
打开https://freessl.cn/站点,输入已申请的域名,点击“创建免费的SSL证书”,如图1。
然后会要求提供一个邮箱,如图2,目前注册过程中不会用到,域名即将到期时会发邮件到这个邮箱。
输入邮箱后,点击“创建”,页面会调用系统安装的KeyManager,如果没有自动启动,手动启动即可。启动KeyManager软件后,会自动创建CSR,如图3。这时可返回页面继续后续步骤。
2.2 DNS验证
CSR申请成功后,站点会生成DNS验证值,如图4,需要在域名服务商站点处配置域名解析,为当前域名配置名为_dnsauth的TXT类型记录,如图5。
另外,为了保证站点正常访问,域名还需要配置两条@和www的A记录,记录值为部署服务器的ip,配置完成后如图6所示。
配置完成域名解析,等几分钟域名解析生效,然后再点击图4页面中的“点击验证”进行DNS验证。
2.3 证书导出
如果上面步骤操作正确,验证DNS后页面会展示如图7的证书信息,点击“保存到KeyManager”,则在KeyManager软件中可看到证书信息,如图8。这时可以导出证书,本文是将证书配置到nginx中,所以服务器平台选择“Nginx(pem)”,可选是否加密秘钥,如图9。导出完成后会生成两个crt和key类型的文件,如图10。
3、服务器端nginx配置
将上述步骤中的证书文件,crt和key上传至服务器。假设两文件上传到服务器的“/root/https”目录下,则在nginx配置文件中添加如下配置,启用域名对应站点的https访问。验证nginx配置没有问题后,重启nginx服务,如图11,图12。
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /root/https/crane.cool_chain.crt;
ssl_certificate_key /root/https/crane.cool_key.key;
server_name crane.cool www.crane.cool;
root /usr/local/wwwroot/run;
location / {
index index.html;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
4、站点访问
在浏览器输入站点https://crane.cool访问,可见浏览器地址栏前面已经加了“一把锁”。点击“锁”图标可查看证书信息,如图13、图14。