如何在nginx服務器部署Let’s Encrypt免費SSL證書
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 [email protected] -d example.com -d www.example.com -d other.example.net
此處非常簡單,一步到底。執行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/example.com && ll
cert.pem – Apache服務器端證書
chain.pem – Apache根證書和中繼證書
fullchain.pem – Nginx所需要ssl_certificate文件
privkey.pem – 安全證書KEY文件
這4個文件就是生成的密鑰證書文件,但是他們都是文件鏈接而已,實際的文件位於/etc/Let’s Encrypt/archive/example.com下
[html] view plain copy
#ls /etc/Let’s Encrypt/archive/example.com/
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 example.com www.example.com;
上面有ssl字樣的4行配置是必須添加的,對應路徑要與之前上傳的CRT和KEY文件路徑對應以及文件名不要搞錯。
最後,重啓LNMP,可以看到SSL證書生效,且HTTPS可以訪問站點。
如果需要強制使用HTTPS網址訪問,那就需要取掉 listen 80;腳本。