SSL证书申请下来后,如何在Nginx/Apache上配置部署?
SSL证书申请成功后,在 Nginx 和 Apache 服务器上的配置部署步骤有所不同。以下是基于主流环境的详细部署指南:
一、 Nginx 服务器部署步骤
- 准备与上传证书文件
在 Nginx 安装目录下创建专门的 cert 或 ssl 目录(如 /etc/nginx/ssl/)。
将下载的证书文件(.pem 或 .crt)、私钥文件(.key)以及中间证书文件(.ca-bundle 或 _ca.crt)上传至该目录中。 修改 Nginx 配置文件
打开 Nginx 主配置文件(通常为 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/ 下的站点配置文件)。
找到或添加 HTTPS 的 server 块,配置如下:server { listen 443 ssl; server_name yourdomain.com; # 替换为您的实际域名 # 配置证书路径 ssl_certificate /etc/nginx/ssl/yourdomain.pem; ssl_certificate_key /etc/nginx/ssl/yourdomain.key; # 推荐的安全与性能配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; # 网站根目录及其他配置... root /var/www/html; index index.html;}
- 配置 HTTP 自动跳转 HTTPS
在配置文件中添加一个 80 端口的 server 块,将所有 HTTP 请求重定向到 HTTPS:
server {
listen 80;
server_name yourdomain.com;
return 301 https://hostrequest_uri;
} - 验证并重载配置
执行 sudo nginx -t 检查配置文件语法是否正确。
确认无误后,执行 sudo systemctl reload nginx 重载配置使证书生效。
二、 Apache 服务器部署步骤
- 启用 SSL 模块
确认 mod_ssl 模块已启用。在 CentOS/RHEL 系统上,需确保 httpd.conf 中 LoadModule ssl_module modules/mod_ssl.so 前的 # 已删除;在 Ubuntu/Debian 系统上,可执行 sudo a2enmod ssl 启用。
确认配置文件中已添加 Listen 443 监听端口。 - 准备与上传证书文件
在 Apache 目录下创建安全的 cert 或 ssl 目录(如 /etc/httpd/ssl/)。
上传证书文件(.crt 或 .pem)、私钥文件(.key)和证书链文件(.ca-bundle 或 _chain.crt)。
安全建议:将私钥文件权限设置为 600,且不要将其放在 Web 可访问路径(如 /var/www/html)下。 修改虚拟主机配置文件
打开 SSL 配置文件(如 /etc/httpd/conf.d/ssl.conf 或 /etc/apache2/sites-available/default-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/yourdomain_chain.crt # 推荐的安全配置 SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite HIGH:!aNULL:!MD5- 验证并重载配置
执行 sudo apachectl configtest 或 sudo httpd -t 检查语法,确保返回 Syntax OK。
执行 sudo systemctl restart httpd(CentOS/RHEL)或 sudo systemctl restart apache2(Ubuntu/Debian)使配置生效。
三、 部署后验证与注意事项
浏览器验证:在浏览器中访问 https://yourdomain.com,若地址栏出现锁形图标,说明证书部署成功。
开放端口:务必检查服务器防火墙及云平台的安全组规则,确保 443 端口 已对公网开放,否则 HTTPS 请求会被拦截。
解决混合内容报错:若证书部署成功但浏览器仍提示“不安全”,请检查网页中的图片、脚本、CSS等资源链接是否仍在使用 HTTP 协议,需将其统一替换为 HTTPS。