免费 SSL 证书!CentOS6 快速部署教程,让你的网站安全无忧
环境准备
1. 基础环境配置
在 CentOS6 上进行 SSL 证书的安装与配置前,需要确保系统的基础环境已经准备好,由于 CentOS6 的官方 yum 源可能不再支持,因此需要更换为第三方的 yum 源,这里推荐使用腾讯云的 CentOS6 yum 源:
备份原有的 yum 源配置文件 mv /etc/yum.repos.d/* /etc/yum.repos.d_bak/ 下载并替换为腾讯云的 CentOS6 yum 源 wget O /etc/yum.repos.d/CentOSBase.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/Python3.6.12.tgz tar zxvf Python3.6.12.tgz cd Python3.6.12 配置并安装 ./configure make && make install 将系统默认的 python 命令链接到 python3 mv /usr/bin/python /usr/bin/python.old ln s /usr/local/bin/python3 /usr/bin/python 修改 yum 的 python 依赖路径 vim /usr/bin/yum 将首行改为:#!/usr/bin/python2.6
3. Nginx 环境配置
Let’s Encrypt 自动签发证书需要寻找的文件和目录有/etc/nginx
和/usr/bin/nginx
,Nginx 是手动编译安装的,则需要确保这些文件和目录存在并且路径正确,如果 Nginx 安装在/data/app/nginx
目录下,则需要创建符号链接:
ln s /data/app/nginx/sbin/nginx /usr/bin/nginx ln s /data/app/nginx/conf/ /etc/nginx
安装 Certbot 工具
Certbot 是一个 Let’s Encrypt 官方推荐的用于自动化申请和部署 SSL 证书的工具,下载并安装 Certbot:
下载 certbotauto 脚本 wget https://dl.eff.org/certbotauto 赋予执行权限并移动到 /usr/local/bin 目录 chmod 0755 certbotauto mv certbotauto /usr/local/bin/certbotauto
生成 SSL 证书
通过 Certbot 生成 SSL 证书有两种主要方式,一种是全自动完成,另一种是仅生成证书,后续手动配置 Nginx,以下是两种方式的详细步骤:
方式一:全自动完成
运行 certbotauto,选择 Nginx 插件 /usr/local/bin/certbotauto nginx
Certbot 会自动处理所有步骤,包括验证域名所有权、生成证书以及配置 Nginx,这种方式适合初学者。
方式二:仅生成证书,手动配置 Nginx
使用 certonly 参数仅生成证书 /usr/local/bin/certbotauto certonly nginx
此命令会生成证书文件但不会修改 Nginx 配置,需要手动进行下一步的配置。
配置 Nginx 以使用 SSL 证书
无论选择哪种方式生成 SSL 证书,都需要配置 Nginx 以启用 HTTPS,编辑 Nginx 配置文件(通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/your_domain.conf
),添加以下内容:
server { listen 80; server_name your_domain.com; # 将 your_domain.com 替换为你的实际域名 return 301 https://$host$request_uri; # 将所有 HTTP 请求重定向到 HTTPS } server { listen 443 ssl; server_name your_domain.com; # 将 your_domain.com 替换为你的实际域名 ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem; # 证书路径 ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem; # 私钥路径 ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHERSAAES128GCMSHA256:ECDHEECDSAAES128GCMSHA256:ECDHERSAAES256GCMSHA384:ECDHEECDSAAES256GCMSHA384:DHERSAAES128GCMSHA256:DHEDSSAES128GCMSHA256:kEDH+AESGCM:ECDHERSAAES128SHA256:ECDHEECDSAAES128SHA256:ECDHERSAAES128SHA:ECDHEECDSAAES128SHA:ECDHERSAAES256SHA384:ECDHEECDSAAES256SHA384:ECDHERSAAES256SHA:ECDHEECDSAAES256SHA:DHERSAAES128SHA256:DHERSAAES128SHA:DHEDSSAES128SHA256:DHERSAAES256SHA256:DHEDSSAES256SHA:DHERSAAES256SHA:AES128GCMSHA256:AES256GCMSHA384:AES128:AES256:AES:DESCBC3SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK'; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
重新加载 Nginx 配置并验证
完成 Nginx 配置后,需要重新加载 Nginx 配置并验证 SSL 是否生效:
重新加载 Nginx 配置 service nginx reload
打开浏览器,访问你的域名并查看是否出现小锁标志,表示 SSL 已成功启用。
设置自动续期证书
Let’s Encrypt 颁发的证书有效期为 90 天,因此需要设置自动续期任务,编辑 crontab 文件,添加以下内容以每天尝试续期一次:
编辑 crontab 文件 crontab e 添加自动续期任务 0 0,12 * * * root /usr/local/bin/certbotauto renew quiet
保存并退出编辑器,这样,系统将每天零点和中午各尝试续期一次 SSL 证书,确保网站始终拥有有效的 SSL 证书。
到此,以上就是小编对于“免费 SSL 证书!CentOS6 快速部署教程,让你的网站安全无忧”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。