插件窝 干货文章 CentOS上搭建web服务器的HTTPS配置及注意事项

CentOS上搭建web服务器的HTTPS配置及注意事项

配置 证书 Nginx yourdomain 59    来源:    2025-04-13

CentOS上搭建Web服务器的HTTPS配置指南

准备工作

在开始配置HTTPS之前,请确保已完成以下准备工作:

  1. 已安装并配置好Web服务器(如Apache或Nginx)
  2. 拥有有效的域名
  3. 已获取SSL证书(可以是自签名证书或CA颁发的证书)

Apache服务器HTTPS配置

1. 安装必要模块

sudo yum install mod_ssl openssl

2. 配置SSL证书

将获取的证书文件(通常包括.crt和.key文件)上传到服务器,建议存放在:

/etc/pki/tls/certs/   # 证书文件
/etc/pki/tls/private/ # 私钥文件

3. 修改SSL配置文件

编辑主配置文件:

sudo vi /etc/httpd/conf.d/ssl.conf

主要修改以下部分:

<VirtualHost _default_:443>
    ServerName yourdomain.com:443
    DocumentRoot "/var/www/html"

    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite HIGH:!aNULL:!MD5

    SSLCertificateFile /etc/pki/tls/certs/yourdomain.crt
    SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
    SSLCertificateChainFile /etc/pki/tls/certs/chain.crt  # 如果有中间证书
</VirtualHost>

4. 重启Apache服务

sudo systemctl restart httpd

Nginx服务器HTTPS配置

1. 安装Nginx和OpenSSL

sudo yum install nginx openssl

2. 配置SSL证书

同样将证书文件上传到适当位置。

3. 修改Nginx配置

编辑配置文件:

sudo vi /etc/nginx/conf.d/yourdomain.conf

添加以下内容:

server {
    listen 443 ssl;
    server_name yourdomain.com;

    ssl_certificate /etc/nginx/ssl/yourdomain.crt;
    ssl_certificate_key /etc/nginx/ssl/yourdomain.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";

    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }
}

4. 重启Nginx服务

sudo systemctl restart nginx

注意事项

1. 证书管理

  • 定期检查证书有效期并提前续期
  • 使用Let's Encrypt等免费CA时,设置自动续期
  • 私钥文件必须严格保护(权限设置为600)

2. 安全配置

  • 禁用不安全的SSL/TLS协议版本(如SSLv2、SSLv3)
  • 使用强加密套件
  • 启用HSTS(HTTP Strict Transport Security)
  • 考虑启用OCSP Stapling提高性能

3. 性能优化

  • 启用会话恢复(Session Resumption)
  • 使用TLS 1.3以获得更好的性能
  • 考虑使用HTTP/2

4. 防火墙配置

确保防火墙允许HTTPS流量(端口443):

sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

5. 测试验证

配置完成后,使用以下工具测试配置: - Qualys SSL Labs测试:https://www.ssllabs.com/ssltest/ - 命令行测试:openssl s_client -connect yourdomain.com:443

常见问题解决

  1. 证书不受信任:确保已正确安装中间证书
  2. 混合内容警告:确保网页中所有资源都使用HTTPS链接
  3. 重定向循环:检查.htaccess或Nginx重定向规则
  4. 性能问题:启用HTTP/2和TLS 1.3,优化加密套件

通过以上步骤和注意事项,您可以在CentOS上成功配置安全可靠的HTTPS服务。