Let's Encrypt是什么
https://letsencrypt.org/zh-cn/about/
如何操作进行配置实现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为例。
配置解析值时候需要注意自己购买的云厂商的解析规则,例如这里阿里云DNS是默认会带上你的一级域名,因此在书写配置时候就不用写了。
经过我的验证这边虽然是免费的ssl认证给你白嫖三个月,但是如果你上述解析配置正确的话还是认证发证书很快的。
使用命令查看一下证书文件是否存在
ls -l /etc/letsencrypt/live/shuyixiao.cloud/
然后后续的话需要在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 .
打包完成之后需要注意由于已经使用了SSL认证之后,因此在执行命令时候不能单纯的就使用80来进行。还有就是需要在执行的命令中加上SSL的挂载路径不然就会出现报错。
在执行命令时候需要按照下述命令进行启动并开放443端口
docker run -d -p 80:80 -p 443:443 -v /etc/letsencrypt:/etc/letsencrypt yixiao_blog_front
如果执行访问不了日志中存在报错的话需要赋予一下权限
sudo chmod 644 /etc/letsencrypt/live/shuyixiao.cloud/fullchain.pem
sudo chmod 644 /etc/letsencrypt/live/shuyixiao.cloud/privkey.pem
按照这个执行完成之后可以查看到,访问这块已经没有不安全的告警信息了。
好了本次就到这里,后续自动续期下次再分享~