使用Certbot获取Let's Encrypt免费Https证书

因为阿里云的云主机在没有备案的情况下(备案比较复杂且无用), 80端口是关闭的, 这就导致想访问你的网址就必须在域名后加上端口号,非常不优雅.然而https默认监听443端口,这就给了我们一个方法去优雅的开放网站.
如果我们要启用 HTTPS,就需要从证书授权机构(以下简称 CA ) 处获取一个证书,Let's Encrypt 就是一个 CA。
Let's Encrypt 是一个免费、开放,自动化的证书颁发机构。
Certbot 是 Let’s Encrypt 官方推荐的证书生成客户端工具

安装Certbot

git clone https://github.com/certbot/certbot
或者
sudo apt-get install certbot

获取证书

Certbot 获取证书有两种方式

webroot模式

这种模式适用于80端口在用且服务已经在运行的情况
sudo certbot certonly --webroot -w /var/www/example -d example.com --agree-tos --email 你的@邮箱.com
这种模式会在 /var/www/example 中创建 .well-known 文件夹,这个文件夹里面包含了一些验证文件,letsencrypt 会通过访问 example.com/.well-known/acme-challenge 来验证你的域名是否绑定的这个服务器

  • --email 指定账户
  • --agree-tos 同意服务协议

standalone模式

这种模式适用于80端口无法启用或者已启用服务没有根目录的情况
sudo certbot certonly --standalone -d example.com --agree-tos --email 你的@邮箱.com
ps.此模式需先关闭443端口在用的nginx,不然会出现错误:
Problem binding to port 443: Could not bind to IPv4 or IPv6.

证书申请成功后会提示证书的文件路径,以及证书到期时间:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/zhengwuyang.top/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/zhengwuyang.top/privkey.pem
   Your cert will expire on .......

zhengwuyang.top即为你的域名

nginx配置

在配置文件中加入

    listen         443;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/zhengwuyang.top/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/zhengwuyang.top/privkey.pem;

zhengwuyang.top即为你的域名

重启nginx就大功告成

你可能感兴趣的:(使用Certbot获取Let's Encrypt免费Https证书)