使用Certbot申请免费泛域名SSL证书

文章目录

  • 使用certbot申请免费泛域名SSL证书
    • 测试环境
    • 预备需求
    • 详细步骤
    • 将证书配置到服务器

使用certbot申请免费泛域名SSL证书

测试环境

  • Ubuntu Server 20.04
  • 阿里云域名
  • cerbot版本1.7.0

其他环境请参考cerbot指南https://certbot.eff.org/instructions

预备需求

  • 域名
  • root权限

详细步骤

  1. 登录到服务器

  2. 安装snapd(ubuntu 20.04已经默认安装,如果没安装请参考https://snapcraft.io/docs/installing-snapd)

  3. 安装Certbot

    sudo snap install --classic certbot
    
  4. 获取证书

    输入以下命令:

    sudo certbot certonly --manual --preferred-challenges=dns
    

    certonly表示我们只想要获取证书,--manual表示使用手动方式,--preferred-challenges=dns表示使用dns挑战(若要使用其他方式,请参考官方指南https://certbot.eff.org/docs/using.htm)

    这里使用手动获取的方式,手动获取可以不需要登录目标主机,可在其他主机上获取目标主机的ssl证书

    这里使用的是dns挑战,还可以使用http挑战,如果服务器的80端口无法访问则会出现问题,推荐使用dns

    这时会出现提示让你输入邮箱地址:

    在这里插入图片描述

    输入你的邮箱地址,然后按下回车

    此时会让你阅读服务条款,接受即可:

    使用Certbot申请免费泛域名SSL证书_第1张图片

    此时提示是否共享你的邮箱地址,我选择不共享:

    使用Certbot申请免费泛域名SSL证书_第2张图片

    此时会让你输入你的域名,我的域名为ocfbnj.cn,如果要申请泛域名证书,则输入ocfbnj.cn *.ocfbnj.cn,如果要申请单域名,则输入www.ocfbnj.cnzh.ocfbnj.cn等:

    在这里插入图片描述

    此时会出现一个提示,确认即可:

    使用Certbot申请免费泛域名SSL证书_第3张图片

    此时提示部署一条DNS文本记录:

    使用Certbot申请免费泛域名SSL证书_第4张图片

    这时打开阿里云云解析dns,按照上面所说的要求添加一条记录:

    使用Certbot申请免费泛域名SSL证书_第5张图片

    然后回到终端,按下回车键:

    使用Certbot申请免费泛域名SSL证书_第6张图片

    此时已成功获取证书,上面显示/etc/letsencrypt/live/ocfbnj.cn/fullchain.pem为证书的保存目录,/etc/letsencrypt/live/ocfbnj.cn/privkey.pem为私匙目录。

    到此为止,获取过程已全部完成。

将证书配置到服务器

我是用的是nginx服务器,注意我已经把证书和密匙拷贝到了/root目录下

server {
    listen 80;
    server_name .ocfbnj.cn default_server;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;

    server_name .ocfbnj.cn;

    ssl_certificate /root/fullchain.pem;
    ssl_certificate_key /root/privkey.pem;

    root /var/www/cpp/reference/zh;

    location / {

    }

    location /common/ {
        root /var/www/cpp/reference;
    }
}

测试网页:

使用Certbot申请免费泛域名SSL证书_第7张图片

浏览器地址栏已经加锁,证书有效期为3个月,到期后按照同样的方式申请即可

你可能感兴趣的:(TCP/IP,https,ssl,nginx,certbot)