Nginx 服务器
是一个高性能的HTTP和反向代理服务器;也是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。
Let’s Encrypt免费 ssl 证书
Let’s Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由网络公益组织ISRG(Mozilla、Cisco、Akamai、IdenTrust、EFF等)组织人员发起,主要的目的也是为了推进网站从HTTP向HTTPS过度的进程,目前已经有越来越多的商家加入和赞助支持。
Nginx 是部署HTTPS常用的服务器之一,而Let’s Encrypt免费SSL证书几乎是全球使用最广泛的SSL证书之一。可见很多站长都必须要知道nginx服务器如何部署Let’s Encrypt免费SSL证书,这对于SSL证书熟悉的站长来说是一件轻而易举的事情,但是对于初次接触SSL证书的人来,就是一头雾水,为了解决这种尴尬的场面,下面介绍基于web服务器是nginx,实行部署Let’s Encrypt免费SSL证书。
下载项目运行,生成证书
[html] view plain copy
#git clone https://github.com/certbot/certbot
#cd certbot
#./certbot-auto certonly –standalone –email admin@trustauth.cn -d trustauth.cn -d www.trustauth.cn -d other.trustauth.cn
此处非常简单,一步到底。执行certbot-auto命令就是生成证书的过程,参数中email是站长对应的域名联系人邮箱地址,参数d就是要加签的域名,可以多个。
生成过程有提示的话agree和yes即可
参看证书
生成的证书位于/etc/Let’s Encrypt/下
[html] view plain copy
#ls /etc/Let’s Encrypt/
accounts archive csr keys live renewal
#cd /etc/Let’s Encrypt/live/trustauth.cn && ll
cert.pem – Apache服务器端证书
chain.pem – Apache根证书和中继证书
fullchain.pem – Nginx所需要ssl_certificate文件
privkey.pem – 安全证书KEY文件
这4个文件就是生成的密钥证书文件,但是他们都是文件链接而已,实际的文件位于/etc/Let’s Encrypt/archive/trustauth.cn下
[html] view plain copy
#ls /etc/Let’s Encrypt/archive/trustauth.cn/
cert1.pem chain1.pem fullchain1.pem privkey1.pem
如果用到docker一类的工具,nginx配置中必须指向真实文件位置,否则会读不到
配置nginx
需要在已有的LNMP添加了站点,然后在站点对应的CONF文件设置
[html] view plain copy
server
{
listen 80;
#listen [::]:80;
listen 443 ssl;
ssl on;
ssl_certificate /root/ssl.crt;
ssl_certificate_key /root/ssl.key;
server_name trustauth.cn www.trustauth.cn;
上面有ssl字样的4行配置是必须添加的,对应路径要与之前上传的CRT和KEY文件路径对应以及文件名不要搞错。
最后,重启LNMP,可以看到SSL证书生效,且HTTPS可以访问站点。
如果需要强制使用HTTPS网址访问,那就需要取掉 listen 80;脚本。