certbot官网手册:https://eff-certbot.readthedocs.io/en/latest/using.html#certbot-commands
使用nginx作为web服务器
参考部署:
源码安装nginx
nginx增加ssl模块
要配置https,nginx就必须要有–with-http_ssl_module模块,所以在编译的需要加上
./configure --with-http_ssl_module
搭建好web服务器,配置好域名后,进行访问测试
#可以看出能成功访问,但是显示不安全,是因为没有配置证书
#这里的域名一定是合法的域名,而且必须已经备案
安装certbot
certbot官网
yum -y install epel-release #安装第三方的源
yum -y install snapd #安装snapd软件包
systemctl enable --now snapd.socket #启用管理主snap通信套接字的systemd单元
ln -s /var/lib/snapd/snap /snap #要启用经典的snap支持,输入以下命令在/var/lib/snap /snap和/snap之间创建一个符号链接
snap install core;snap refresh core #确保snap是最新的
snap install --classic certbot #安装certbot
ln -s /snap/bin/certbot /usr/bin/certbot #将certbot添加进入环境变量
执行certbot的命令是 certbot --nginx
certbot --nginx
这里报错,报错内容是nginx的可执行文件并不在环境变量中,我们使用的是源码安装安装目录默认在/usr/local/nginx,nginx的可执行文件在/usr/local/nginx/sbin/nginx,将nginx的可执行文件做一个软链到/usr/bin中
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
在次执行certbot --nginx
certbot --nginx
这里有报错了,报错内容是找不到/etc/nginx/nginx.conf文件,我们将nginx的配置文件从默认的/usr/local/nginx/conf软链到/etc/nginx
ln -s /usr/local/nginx/conf /etc/nginx
再次执行certbot --nginx
certbot --nginx
看样子已经成功了
现在提示我们输入一个邮件地址用来接收紧急续订和安全通知
同意所有的要求,通过序号来给指定的域名进行加密,这里我只有一个域名所以序号为1
安装完证书,certbot会修改一下nginx的配置文件,将把所有80访问的重定向到443端口访问
访问测试(需要开放443端口哦)
#可以看出证书已经部署上了
certbot会自动续证无需操行,手动续证的命令是 certbot renew --dry-run
续订 certbot 的命令安装在以下位置之一:
/etc/crontab/
/etc/cron.*/*
systemctl list-timers
具体是怎么实现的我暂时还看不懂