原创 

阿里云CentOS 8 + nginx 免费开启ssl https (certbot 方式)

分类:运维    716人阅读    IT小君  2021-04-29 15:49

原理:

    使用let's encrypt 的生成免费证书。certbot 封装了let's encrypt 免费证书的认证和过期重新刷新的过程。所以只需要安装certbot 生成证书,配置好nginx 就可以开启。


过程:

1、安装snapd

A、介绍:Snap是Ubuntu 16.04 LTS发布时引入的新应用格式包。目前已流行在Ubuntu且在其他如Debian、Arch Linux、Fedora、Kaili Linux、openSUSE、Red Hat等Linux发行版上通过snapd来安装使用snap应用

B、安装命令(centos 为例)

$ sudo yum install snapd
#Once installed, the systemd unit that manages the main snap communication socket needs to be enabled:

$ sudo systemctl enable --now snapd.socket
#To enable classic snap support, enter the following to create a symbolic link between /var/lib/snapd/snap and /snap:

$ sudo ln -s /var/lib/snapd/snap /snap

notice :可以在https://snapcraft.io/docs/installing-snapd 查看其他系统安装命令

2、安装 certbot (需要输入邮箱和域名信息,centos 为例,其他系统或web容器 可在https://certbot.eff.org/lets-encrypt/centosrhel8-nginx查看)

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot certonly --nginx

notice: 以上命令可能会提示 /etc/nginx 下找不到相应文件夹,certbot 获取证书的同时会修改nginx的配置文件,找不到该文件所以才会报错。因为我的Nginx并没有安装在/etc目录下,而是在/usr/bin/nginx。各人情况可能不太一样,可以通过命令查看你的nginx目录(我的nginx配置文件在/usr/local/nginx/conf/下名为nginx.conf):

此时可以通过文件目录连接处理:

$ ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
$ ln -s /usr/local/nginx/conf/ /etc/nginx

然后再:

sudo certbot --nginx certonly

安装好后可以测试下证书刷新

sudo certbot renew --dry-run

3、配置nginx( nginx 需要添加了ssl模块 不然请重新编译 ),添加如下配置:

listen [::]:80 default_server ipv6only=on;
        server_name localhost;

        location /nginx_status
        {
			......
         }
 
         access_log  /home/wwwlogs/access.log;
     
		 listen 443 ssl http2; # managed by Certbot
		 ssl_certificate /etc/letsencrypt/live/yy123.ink/fullchain.pem; 
		 ssl_certificate_key /etc/letsencrypt/live/yy123.ink/privkey.pem; 
		 include /etc/letsencrypt/options-ssl-nginx.conf; 
		 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

重启nginx 

service nginx restart


notice 阿里云443 端口默认是关闭的,需要在 我的服务器->安全组->配置规则中添加 ,可在在线检测工具http://coolaf.com/tool/port检测端口是否打开


4、配置cron 定时任务 定时更新证书 防止证书过期

crontab -e

添加:

0 0 1 * * /usr/bin/certbot renew --force-renewal        #每月1号凌晨强制更新Let's Encrypt证书
5 0 1 * * /usr/sbin/service nginx restart               #每月1号凌晨更新证书后重启nginx





点击广告,支持我们为你提供更好的服务

css鼠标跟随文字模糊特效

网页设计开发公司网站模板

css+js实现的颜色渐变数字时钟动画特效

小众时尚单品在线电子商务网站模板

现代时尚家具公司网站模板

canvas炫酷鼠标移动文字粒子特效

html5图标下拉搜索框自动匹配代码

HTML5 Canvas竖直流动线条背景动画特效

HTML5数字产品服务公司网站模板

html5 canvas彩色碎片组合球形旋转动画特效

响应式时尚单品在线商城网站模板

js+css3抽奖转盘旋转点餐代码

HTML5现代家居装潢公司网站模板

jQuery右端悬浮带返回顶部特效

有机水果蔬菜HTML5网站模板

html5 svg夜空中星星流星动画场景特效

html5 canvas进度条圆环图表统计动画特效

响应式咖啡饮品宣传网站模板

响应式太阳能能源公司网站模板

中小型创意设计服务公司网站模板

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»
点击广告,支持我们为你提供更好的服务