
SSL证书申请记录
前言
网站弄了都快一年了都没有申请SSL证书,这次申请一下。主要是问GPT的流程。
Let’s Encrypt
+certbot
实现申请多个免费的证书并且自动续期。
但是写完之后感觉好像就么一点东西真的有写的必要嘛... 不过还是留着吧,方便以后重新申请。
步骤
申请证书
首先是在服务器上安装cerbot(因为之前没装)
apt update
apt install certbot python3-certbot-nginx
# 不过后面因为报openSSL的错,说是certbot版本太旧了,通过下面的方式升级版本
apt install snapd
apt remove certbot python3-certbot-nginx
snap install core; sudo snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
然后是为所有域名申请证书(如果以后有新增的话需要重新申请)
# 其中certonly确保certbot不自动修改nginx的配置文件,自己手动修改
# deploy-hook确保证书续期之后重新加载
certbot certonly --nginx \
-d lxblxb.top \
-d blog.lxblxb.top \
-d git.lxblxb.top \
-d gpus.lxblxb.top \
-d git402.lxblxb.top \
--deploy-hook "systemctl reload nginx"
修改Nginx配置
之后是手动的修改一下nginx的配置文件,在/etc/nginx/sites-available/default
,在改之前记得先备份一个。
主要有两个需要修改的地方:
将原来的HTTP映射到HTTPS。
HTTPS的设置。
其中第一步的设置如下:
# lxblxb.top
server {
listen 80;
listen [::]:80;
server_name lxblxb.top;
return 301 https://lxblxb.top$request_uri;
}
# blog.lxblxb.top
server {
listen 80;
listen [::]:80;
server_name blog.lxblxb.top;
return 301 https://blog.lxblxb.top$request_uri;
}
其他网址以此类推,即监听80端口,将其重定向到对应https的网址。
第二步的设置如下:
# lxblxb.top
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name lxblxb.top;
ssl_certificate /etc/letsencrypt/live/lxblxb.top/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/lxblxb.top/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
client_max_body_size 1024m;
location / {
proxy_pass http://lxb_home;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# blog.lxblxb.top
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name blog.lxblxb.top;
ssl_certificate /etc/letsencrypt/live/lxblxb.top/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/lxblxb.top/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
client_max_body_size 1024m;
location / {
proxy_pass http://halo;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
其他的也是以此类推,其中四行ssl相关的配置就是在设置证书的路径。
验证
certbot renew --dry-run
不报错的话就没问题了(一开始报了一次错,但是后面重新执行一次就没了)
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 鱼骨剪
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果