Let's Encrypt是什么

https://letsencrypt.org/zh-cn/about/

使用Let’s Encrypt 配置 SSL 证书去除浏览器不安全告警_DNS

如何操作进行配置实现ssl认证

使用 certbot 获取 Let's Encrypt 的免费 SSL 证书
更新系统软件包
sudo yum update -y
安装 EPEL 仓库(Certbot 通常位于 EPEL 仓库中):
sudo yum install epel-release -y

安装 Certbot:

sudo yum install certbot -y

获取 Let's Encrypt SSL 证书

使用 DNS 验证获取证书:

运行 Certbot 命令来获取证书:

sudo certbot certonly --manual --preferred-challenges dns -d yourdomain.com -d www.yourdomain.com

这里我的域名是 www.shuyixiao.cloud 因此我将上述命令修改为

sudo certbot certonly --manual --preferred-challenges dns -d shuyixiao.cloud -d www.shuyixiao.cloud

执行完上述命令之后会提示你输入一下自己的邮箱信息等等然后会给你两个TXT的值类型,需要将这两个值配置在你自己的云服务DNS解析中,我这里以阿里云DNS为例。

使用Let’s Encrypt 配置 SSL 证书去除浏览器不安全告警_html_02

配置解析值时候需要注意自己购买的云厂商的解析规则,例如这里阿里云DNS是默认会带上你的一级域名,因此在书写配置时候就不用写了。

使用Let’s Encrypt 配置 SSL 证书去除浏览器不安全告警_SSL_03

经过我的验证这边虽然是免费的ssl认证给你白嫖三个月,但是如果你上述解析配置正确的话还是认证发证书很快的。

使用Let’s Encrypt 配置 SSL 证书去除浏览器不安全告警_DNS_04

使用命令查看一下证书文件是否存在

ls -l /etc/letsencrypt/live/shuyixiao.cloud/

使用Let’s Encrypt 配置 SSL 证书去除浏览器不安全告警_SSL_05

然后后续的话需要在nginx中配置自己的一下证书信息,下面展示一下我的nginx配置。

server {
    listen       80;
    server_name  www.shuyixiao.cloud shuyixiao.cloud;

    # 重定向 HTTP 到 HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name www.shuyixiao.cloud shuyixiao.cloud;

    # SSL 证书配置
    ssl_certificate /etc/letsencrypt/live/shuyixiao.cloud/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/shuyixiao.cloud/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers HIGH:!aNULL:!MD5;

    # 处理静态文件请求
    location / {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Headers X-Requested-With;
        add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
        root   /usr/share/nginx/html/;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }

    # 处理 API 请求的反向代理
    location /api/ {
        rewrite ^/api/(.*) /$1 break;
        proxy_pass http://xxx.xxx.xxx.xxx:xxxx;
    }

    # 错误页面配置
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html/;
    }
}

执行完成上述配置之后可以使用打包命令打包一个新的镜像信息

docker build -t yixiao_blog_front .

使用Let’s Encrypt 配置 SSL 证书去除浏览器不安全告警_DNS_06

打包完成之后需要注意由于已经使用了SSL认证之后,因此在执行命令时候不能单纯的就使用80来进行。还有就是需要在执行的命令中加上SSL的挂载路径不然就会出现报错。

使用Let’s Encrypt 配置 SSL 证书去除浏览器不安全告警_SSL_07

在执行命令时候需要按照下述命令进行启动并开放443端口

docker run -d -p 80:80 -p 443:443 -v /etc/letsencrypt:/etc/letsencrypt yixiao_blog_front

使用Let’s Encrypt 配置 SSL 证书去除浏览器不安全告警_html_08

如果执行访问不了日志中存在报错的话需要赋予一下权限

sudo chmod 644 /etc/letsencrypt/live/shuyixiao.cloud/fullchain.pem
sudo chmod 644 /etc/letsencrypt/live/shuyixiao.cloud/privkey.pem

按照这个执行完成之后可以查看到,访问这块已经没有不安全的告警信息了。

使用Let’s Encrypt 配置 SSL 证书去除浏览器不安全告警_SSL_09

好了本次就到这里,后续自动续期下次再分享~