使用Let’s Encrypt给网站加密

使用 Let’s Encrypt 给网站加密

还没给你的网站加上Https?快用 Let’s Encrypt 给你的网站加个小锁吧!

证书申请

来此加密 按照步骤给域名申请证书,需要用邮箱注册账号。

验证的话,直接在域名解析里加个 TXT 类型的 DNS 解析,等 3 分钟就可以验证了。添加完了可以用 nslookup -q=txt _acme-challenge.xxx.com 验证是否添加成功。

本来之前我用 FreeSSL 的,还有个客户端 KeyManager,阿里云可以一键申请证书和一键部署非常方便,但是我在用一键部署的时候一直卡住,试了几次没成功就放弃了。换了 Let’s Encrypt。

上传证书

证书申请成功后,下载下来是一个压缩包,解压缩后里面有几个文件,用 scp 命令或者 ftp 工具将文件夹上传到服务器上。

scp -r local_path remote_path user@ip:remote_path 

更改 Nginx配置文件

打开 /etc/nginx/sites-available/default 文件,添加配置:

server
{
    listen 80;
    listen 443 ssl http2;
    
    # SSL配置
    ssl_certificate path/fullchain.crt;
    ssl_certificate_key path/private.pem;
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
}

path 是证书的目录。

一定要注意每一行后面有分号,我就是没注意这个分号,导致重启 nginx 的时候一直报错,说 ssl_certificate 是未定义变量。主要是 https://letsencrypt.osfipin.com 这个网站官方配置说明里就没有分号。

443 端口一定要放开。

sudo service nginx restart

重启 nginx 就可以用 https 访问了!