首页 » Web服务器 » Nginx » 正文

阿里云 CentOS6 + Nginx 部署Let’s Encrypt SSL证书

系统环境:阿里云 CentOS release 6.10 (Final)

Python版本:Python 2.6.6

 

官方文档:https://certbot.eff.org/lets-encrypt/centos6-nginx

官方文档很简单,就3步,但是基础环境不对的话,执行第2步时肯定会出错。

 

一、基础环境准备

1. yum环境

由于阿里云官方CentOS6的yum源已经清空,所以如果你在CentOS6上运行yum安装包时会出现404找不到包的情况。

解决办法:

删除 /etc/yum.repo.d/ 目录下的所有文件,然后使用腾讯云的 CentOS6 yum源:

# rm -rf /etc/yum.repos.d/*
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos6_base.repo
# yum clean all
# yum makecache

 

2. Python环境

Let’s Encrypt 现在签发证书要求python3以上,经过我的测试需要python3.6以上,这里我安装python3.6

源码安装Python3.6:

wget https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tgz
tar -zxvf Python-3.6.12.tgz
cd Python-3.6.12
./configure
make && make install 

将系统python2环境改为python3

mv /usr/bin/python /usr/bin/python.old
ln -s /usr/local/bin/python3 /usr/bin/python

vim /usr/bin/yum  将首行 python改为  python2.6

 

3. nginx环境

Let’s Encrypt 自动签发证书需要寻找的文件和目录有 /etc/nginx , /usr/bin/nginx ,如果你是yum安装的nginx,那默认就是了,不用改什么。

我的是我手动编译安装的,安装到了目录 /data/app/nginx ,所以需要稍微修改一下:

ln -s /data/app/nginx/sbin/nginx /usr/bin/nginx
ln -s /data/app/nginx/conf/ /etc/nginx

 

二、开始安装

1. 安装 Certbot

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

2. 安装证书

这里有两种方式,看个人喜欢或实际情况决定。

方式一:证书签发与部署全自动完成

/usr/local/bin/certbot-auto --nginx

方式二:只生成证书,修改nginx配置需要你手动去修改

/usr/local/bin/certbot-auto certonly --nginx

 

3. 设置自动续期

echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew -q" | sudo tee -a /etc/crontab > /dev/null

 

 

发表评论

验证码加载中....