Nginx配置HTTPS证书步骤
- 准备证书文件:通常有
.crt
(证书文件)和 .key
(私钥文件),将它们放置在服务器指定目录,如 /etc/nginx/ssl/
。
- 编辑Nginx配置文件:一般在
/etc/nginx/sites - available/
目录下编辑你的网站配置文件(假设为 example.com
),添加或修改以下内容:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
# 启用HSTS,告诉浏览器始终通过HTTPS访问该网站
add_header Strict - Transport - Security "max - age = 31536000; includeSubDomains; preload";
# 其他配置,如location块等
location / {
# 站点根目录等配置
root /var/www/html/example.com;
index index.html;
}
}
- 检查配置并重启Nginx:执行
nginx -t
检查配置文件语法是否正确,若无误执行 systemctl restart nginx
使配置生效。
Apache配置HTTPS证书步骤
- 准备证书文件:同样将
.crt
和 .key
文件放置在合适目录,如 /etc/httpd/conf/ssl/
。
- 编辑Apache配置文件:编辑
/etc/httpd/conf.d/ssl.conf
文件(不同系统路径可能有差异),找到并修改以下部分:
<VirtualHost _default_:443>
ServerName example.com
DocumentRoot /var/www/html/example.com
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl/example.com.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/example.com.key
# 启用HSTS
Header always set Strict - Transport - Security "max - age = 31536000; includeSubDomains; preload"
</VirtualHost>
- 检查配置并重启Apache:执行
httpd -t
检查配置,无误后执行 systemctl restart httpd
重启服务。
配置过程中可能遇到的安全风险及防范措施
- 证书泄露风险:
- 风险:若
.crt
和 .key
文件权限设置不当,可能被非法获取,导致中间人攻击等。
- 防范:确保证书和私钥文件权限为
600
(只有文件所有者可读可写),并且放置在受保护的目录中,限制访问。
- 不安全的密码套件:
- 风险:使用弱密码套件可能被破解,导致数据传输被窃听或篡改。
- 防范:在Nginx中,可以通过
ssl_protocols TLSv1.2 TLSv1.3;
限制使用的TLS协议版本,并通过 ssl_ciphers HIGH:!aNULL:!MD5;
设置安全的密码套件;在Apache中,使用 SSLProtocol all -SSLv2 -SSLv3
和 SSLCipherSuite HIGH:!aNULL:!MD5
进行类似设置。
- 重定向问题:
- 风险:若没有正确配置从HTTP到HTTPS的重定向,用户可能仍通过不安全的HTTP访问网站。
- 防范:在Nginx中,可在HTTP服务器块添加
return 301 https://$server_name$request_uri;
实现重定向;在Apache中,可通过在HTTP虚拟主机配置中添加 Redirect permanent / https://example.com/
进行重定向。