CentOS LAMP 环境 SSL 证书安装与自动续期
一 准备与前置检查
sudo yum install -y httpd && sudo systemctl enable --now httpdsudo yum install -y mod_ssl opensslchmod 600 /etc/httpd/ssl/*.key。二 方式一 使用 Certbot 自动获取并部署 Let’s Encrypt 证书(推荐)
sudo yum install -y certbot python3-certbot-apachesudo certbot --apache -d yourdomain.com -d www.yourdomain.comsudo certbot renew --dry-run(测试无误后使用 sudo certbot renew 或配置定时任务)三 方式二 手动安装已有证书(Apache 配置文件)
/etc/httpd/ssl/yourdomain.crt、/etc/httpd/ssl/yourdomain.key、/etc/httpd/ssl/root_bundle.crtLoadModule ssl_module modules/mod_ssl.so(通常位于 /etc/httpd/conf.modules.d/00-ssl.conf)<VirtualHost *:443>
ServerName yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/yourdomain.crt
SSLCertificateKeyFile /etc/httpd/ssl/yourdomain.key
SSLCertificateChainFile /etc/httpd/ssl/root_bundle.crt
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/ssl_error.log
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
</VirtualHost>
sudo systemctl restart httpd。四 HTTP 强制跳转 HTTPS 与 WordPress 设置
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/html
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</VirtualHost>
如未启用重写模块,先加载:LoadModule rewrite_module modules/mod_rewrite.so(可放在 /etc/httpd/conf.modules.d/00-rewrite.conf)。define('FORCE_SSL_ADMIN', true);
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS']='on';
五 常见问题与排查
ss -tlnp | grep :443 检查端口监听。sudo setsebool -P httpd_can_network_connect 1;必要时 sudo restorecon -R /etc/httpd/ssl/var/log/httpd/error_log、/var/log/httpd/ssl_error.log 可快速定位配置语法或握手失败原因。