在开始配置SSL证书前,请确保: 1. 已安装Web服务器(Apache或Nginx) 2. 已获取SSL证书文件(通常包括.crt文件和.key文件) 3. 已获取CA证书链文件(通常为.ca-bundle或.chain.crt文件)
安装mod_ssl模块:
yum install mod_ssl
将证书文件复制到适当位置:
mkdir -p /etc/httpd/ssl
cp your_domain.crt /etc/httpd/ssl/
cp your_domain.key /etc/httpd/ssl/
cp your_domain.ca-bundle /etc/httpd/ssl/
修改SSL配置文件:
/etc/httpd/conf.d/ssl.conf
/etc/httpd/conf.d/ssl.conf
修改以下内容:
<VirtualHost *:443>
ServerName yourdomain.com
DocumentRoot "/var/www/html"
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/your_domain.crt
SSLCertificateKeyFile /etc/httpd/ssl/your_domain.key
SSLCertificateChainFile /etc/httpd/ssl/your_domain.ca-bundle
# 启用HTTP严格传输安全(HSTS)
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
</VirtualHost>
重启Apache服务:
service httpd restart # CentOS 6
systemctl restart httpd # CentOS 7
安装Nginx和OpenSSL:
yum install nginx openssl
将证书文件复制到适当位置:
mkdir -p /etc/nginx/ssl
cp your_domain.crt /etc/nginx/ssl/
cp your_domain.key /etc/nginx/ssl/
cp your_domain.ca-bundle /etc/nginx/ssl/
修改Nginx配置文件:
编辑/etc/nginx/conf.d/ssl.conf
或主配置文件/etc/nginx/nginx.conf
:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/your_domain.crt;
ssl_certificate_key /etc/nginx/ssl/your_domain.key;
# 合并证书和CA链
# cat your_domain.crt your_domain.ca-bundle > /etc/nginx/ssl/your_domain.chained.crt
# 然后使用: ssl_certificate /etc/nginx/ssl/your_domain.chained.crt;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384...';
ssl_prefer_server_ciphers on;
# HSTS设置
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
重启Nginx服务:
service nginx restart # CentOS 6
systemctl restart nginx # CentOS 7
OpenSSL版本较旧:
apache
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
服务管理命令不同:
service httpd restart
chkconfig httpd on
使用firewalld开放端口:
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
使用systemd管理服务:
systemctl enable httpd
systemctl restart httpd
检查SSL配置:
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
在线工具验证:
证书链不完整:
SSLCertificateChainFile
私钥不匹配:
bash
openssl x509 -noout -modulus -in your_domain.crt | openssl md5
openssl rsa -noout -modulus -in your_domain.key | openssl md5
SELinux阻止访问:
grep avc /var/log/audit/audit.log
bash
chcon -R -t httpd_sys_content_t /etc/httpd/ssl/
混合内容警告:
按照以上步骤,您应该能够在CentOS 6或7上成功配置SSL证书。根据您的具体环境和需求,可能需要进行一些调整。