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

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

测试环境

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

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

预备需求

  • 域名
  • root权限

详细步骤

  1. 登录到服务器

  2. 安装Certbot

    sudo apt install certbot
    
  3. 获取证书

    输入以下命令:

    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

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

    在这里插入图片描述

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

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

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

将证书配置到服务器

我使用的是nginx服务器:

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 /etc/letsencrypt/live/ocfbnj.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ocfbnj.cn/privkey.pem;

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

    location / {

    }

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

测试网页:

在这里插入图片描述

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

相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页