时间:2023.10.16
环境:Ubuntu 22系统云服务器/Nginx
目的:使用https方式访问网站
说明:
作者:Zhong
Certbot网站:Certbot
假设我们的网站为 www.zhong.com 我们想要通过 https://www.zhong.com 网址来访问网站
连接到服务器
使用ssh工具如Xshell连接到服务器
安装nginx
安装完成后在/etc/nginx/conf.d目录新建一个文件如 zhong.conf 写入以下的内容 你可以根据需求写入不同的内容
server {
listen 80;
server_name www.zhong.com;
location / {
return 301 https://$host$request_uri;
}
}
测试配置是否正确
nginx -t
输出如下则正确
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
安装snapd
安装snapd
sudo apt update
sudo apt install snapd
测试使用是否正常 如果显示Hello World!说明正常
sudo snap install hello-world
hello-world
移除certbot-auto和任何Certbot OS包
sudo apt-get remove certbot
# or
sudo dnf remove certbot
# or
sudo yum remove certbot
安装Certbot
sudo snap install --classic certbot
准备Certbot命令
建立连接
sudo ln -s /snap/bin/certbot /usr/bin/certbot
选择你喜欢的运行Certbot的方式
两种方式都可以 这儿以第二种方式获取证书后手动配置操作
1、获取并安装证书
sudo certbot --nginx
2、只获取证书
sudo certbot certonly --nginx
这儿以 只获取证书 作为测试 按照提示输入相关内容即可
证书生成后 修改zhong.conf为如下
server {
listen 80;
server_name www.zhong.com;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name www.zhong.com;
ssl_certificate /etc/letsencrypt/live/www.zhong.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.zhong.com/privkey.pem;
location / {
# root 根据你实际的路径填写
root /var/www/zhong/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
ssl_certificate和ssl_certificate_key选项为默认生成文件的路径 如有不同根据文件实际路径填写
修改后再次执行 nginx -t 测试配置是否正确
测试自动更新
sudo certbot renew --dry-run
更新certbot的命令安装在以下位置之一:
/etc/crontab/
/etc/cron.*/*
systemctl list-timers
验证Certbot是否生效
要确认您的网站设置正确,请在浏览器中访问 https://www.zhong.com 并在URL栏中查找锁定图标。