十分钟,为nginx申请免费的SSL支持

96
Jackeroo
2018.08.21 15:09* 字数 794

最近做了一个微信小程序,服务器需要HTTPS支持。于是就部署了一台支持SSL的nginx服务器(免费)。

网站架设必备之SSL

一、什么是SSL、TLS和HTTPS?

SSL是由受信任的数字证书颁发机构 CA(Certificate Authority,在验证服务器身份后颁发的证书。它不但具备验证服务器身份的功能,还是通过加密传输来保证数据安全的必备文件。

SSL(Secure Sockets Layer, 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。

如果某个网站受 SSL 证书保护,其相应的 URL 中会显示 HTTPS(超文本传输安全协议)。单击浏览器地址栏的挂锁图标,即可查看证书详细信息,包括颁发机构和网站所有者的公司名称。


GitHub网站显示的样式

二、证书颁发机构

数字证书认证机构,就是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。CA 机构是独立的,没有相互关系,这些机构都是在webtrust认证审核下成立的。
目前主流的CA签发机构包括:Symantec、Comodo、GeoTrust、DigiCert、GlobalSign 等。

三、SSL证书的区别

除了颁发SSL证书的机构存在区别外,SSL证书本身也存在级别。主要包括以下三种:

  • 域名型SSL证书,简称DV(Domain Validation)
  • 企业型SSL证书,简称OV(Organization Validation)
  • 增强型SSL证书,简称EV(Extended Validation)
项目 域名型SSL (DV) 企业型SSL (OV) 增强型SSL (EV)
英文名称 Domain Validation Organization Validation Extended Validation
审核内容 域名管理权限 域名管理权限;
企业名称、地址、电话等信息的真实性;
域名管理权限;
企业名称、地址、电话等信息的真实性;
第三方数据库审查,例如邓白氏、114查号台、律师证明信等。
浏览器地址栏 HTTPS + 小锁标志 HTTPS + 小锁标志 HTTPS 小锁标志 + 绿色地址栏 + 公司名字直显在浏览器地址栏
一般用途 个人站点;
iOS应用分发下载;
登录等单纯https加密需求的链接
企业网站 企业官网、电商、P2P等互联网金融网站

OV 和 EV 证书相当昂贵,使用方可以为这些颁发出来的证书买保险,一旦 CA 提供的证书出现问题,一张证书的赔偿金可以达到 100万美元以上。

四、用CertBot快速为nginx提供免费SSL支持

对于一般的用户来说,没有必要为SSL证书去支付高昂的费用——我们可以申请免费的用。
Let's Encrypt就提供了免费的SSL证书,并且借助CertBot工具,我们几分钟就可以把自己的nginx、Apache服务器平滑升级到SSL支持。

4.1 选择Web服务器和操作系统

打开 https://certbot.eff.org/ 网站,在“I am using”后选择自己网站使用的Web服务器,我网站用的是nginx, “On”后面选择操作系统,我网站用的是CentOS7。

选择自己使用的Web服务器和操作系统

4.2 安装EPEL支持

在CentOS下,安装EPEL支持:

sudo yum -y install yum-utils
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

4.3 安装CertBot

sudo yum install python2-certbot-nginx

4.4 获取签名

sudo certbot --nginx

4.5 测试

现在再去访问你的网站,是不是http://直接变成https://了。

注意
CertBot为我们安装的免费SSL证书,只有90天期限。在过期之前,我们需要执行以下指令重新获取证书:

certbot renew
Linux
Web note ad 1