随着互联网安全的不断重视,国内外出现越来越多提供ssl免费证书的机构,今晚将使用Let's Encrypt的免费证书部署站点。服务器环境是centOS7.8,使用nginx作为web服务器。

        简单介绍一下,Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,它由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由HTTP过渡到HTTPS。

        Snaps是跨发行版、无依赖关系且易于安装的应用程序,这些应用程序与所有依赖项打包在一起,可以在所有主要的 Linux 发行版上运行。从单个构建开始,一个 snap(应用程序)将在桌面、云和 IoT 上的所有受支持的 Linux 发行版上运行。支持的发行版包括 Ubuntu、Debian、Fedora、Arch Linux、Manjaro 和 CentOS/RHEL。

       如果你有ssh权限,官方是建议使用ACME客户端来安装证书。首先通过以下命令将EPEL源加入到系统中,epel(Extra Packages for Enterprise Linux ) 是yum的一个源:

$ sudo yum install epel-release

然后安装snapd

$ sudo yum install snapd

安装后,需要启用管理主 snap 通信套接字的systemd单元:

$ sudo systemctl enable --now snapd.socket

要启用经典/var/lib/snapd/snap快照支持,请输入以下内容以在和之间创建符号链接/snap

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

注销并重新登录或重新启动系统以确保正确更新 snap 的路径。

安装和刷新core,然后安装证书机器人(classic模式下)

snap install core

snap refresh core

snap install --classic certbot

如果你使用apt、dnf或者yum等操作系统包管理器安装过任何certbot包,则在安装certbot snap之前删除,以确保在运行certbot时使用的是snap。

Classic
Allows access to your system’s resources in much the same way traditional packages do. To safeguard against abuse, publishing a classic snap requires manual approval, and installation requires the --classic command line argument.
        classic模式和strict模式是相对的,snap默认使用的是strict模式,对安全权限做了极高的要求和限制,classic就和传统的安装包一样对安全权限没有限制。

安装完之后,创建软链把certbot放到/usr/bin下

ln -s /snap/bin/certbot /usr/bin/certbot

 申请ssl证书

certbot安装证书的过程需要回复一些列问题,跟着提示选择,完成后会自动配置nginx.conf文件

certbot查找nginx.conf文件的位置默认是在/etc/nginx下,如果安装的nginx配置文件不在这,可以创建软链实现,以下改成你的配置文件夹路径即可。

ln -s /usr/local/nginx/conf /etc/nginx

certbot --nginx 

你也可以通过 certbot  certonly --nginx 命令只获得nginx证书,手动配置证书。

证书会自动存放到 /etc/letsencrypt/live/<your domain>/目录下,生成两个文件fullchain.pem和privkey.pem

自动更新证书

在证书到期之前更新证书,可以通过certbot renew命令来更新证书

创建两个crontab定时任务,使用crontab -e编辑

# 每个月的1号凌晨更新证书

0 0 1 * * certbot renew

# 每个月的1号凌晨10分重启nginx

10 0 1 * * systemctl restart nginx 

当需要安装新的证书  可以运行

certbot run --nginx

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐