sudo yum update -y确保系统软件包为最新版本。使用OpenSSL生成有效期10年的自签名证书(替换yourdomain.com为实际域名):
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout /etc/pki/tls/private/yourdomain.com.key \
-out /etc/pki/tls/certs/yourdomain.com.crt
编辑Nginx配置文件(如/etc/nginx/conf.d/default.conf),添加以下server块:
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/pki/tls/certs/yourdomain.com.crt;
ssl_certificate_key /etc/pki/tls/private/yourdomain.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /var/www/html;
index index.html index.htm;
}
}
添加以下server块到配置文件顶部,将所有HTTP请求重定向至HTTPS:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
sudo systemctl restart nginx
https://yourdomain.com,确认地址栏显示锁形图标(自签名证书会提示“不安全”,仅测试用)。sudo yum install epel-release -y # 启用EPEL仓库
sudo yum install certbot python3-certbot-nginx -y # 安装Certbot及Nginx插件
运行Certbot命令,指定域名(支持多域名,用-d分隔):
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Let’s Encrypt证书有效期90天,Certbot会自动设置cron任务续期。手动测试续期:
sudo certbot renew --dry-run
sudo firewall-cmd --add-service=https --permanent并sudo firewall-cmd --reload开放端口。ssl_certificate和ssl_certificate_key路径是否与生成证书的路径一致。python3-certbot-nginx替换为python3-certbot-apache。通过以上步骤,即可在CentOS上完成域名SSL证书的安装与配置。生产环境建议优先使用Let’s Encrypt证书,兼顾安全性与便捷性。