如何配置服务器强制使用 HTTPS?
参考资料
配置服务器强制使用 HTTPS
适用操作系统
Linux(如 Ubuntu、CentOS)
Windows Server
macOS Server
证书有效性
获取证书:从 Let's Encrypt、DigiCert 等 CA 获取 SSL/TLS 证书。
证书格式:通常为
.pem
、.crt
(证书)和.key
(私钥)。有效期:一般为 90 天(如 Let's Encrypt)至数年,需定期续订。
配置示例
1. Apache(Linux)
编辑配置文件(如
/etc/apache2/sites-available/000-default.conf
):<VirtualHost *:80> ServerName example.com Redirect permanent / https://example.com/ </VirtualHost> <VirtualHost *:443> ServerName example.com SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/private.key SSLCertificateChainFile /path/to/chain.pem </VirtualHost>
启用模块并重启:
sudo a2enmod ssl sudo systemctl restart apache2
2. Nginx(Linux)
编辑配置文件(如
/etc/nginx/sites-available/default
):server { listen 80; server_name example.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/private.key; ssl_trusted_certificate /path/to/chain.pem; }
重启服务:
sudo systemctl restart nginx
3. IIS(Windows Server)
使用“URL 重写”模块添加规则:
模式:
(.*)
条件:
{HTTPS} = off
操作类型:重定向到
https://{HTTP_HOST}{REQUEST_URI}
(状态码 301)。
调试与验证
检查重定向:
访问
http://example.com
,应自动跳转到https://
。使用
curl -I http://example.com
查看响应头(应有301 Moved Permanently
)。证书验证:
使用浏览器检查证书有效性(无警告)。
通过 SSL Labs 测试配置。
注意事项
混合内容:确保网页内所有资源(如图片、JS)均使用
https://
,否则浏览器会警告。HSTS:启用 HTTP Strict Transport Security(HSTS)头以强制客户端始终使用 HTTPS:
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
性能:启用 TLS 1.3 和 OCSP Stapling 以提升性能。
备份:配置前备份原始文件,避免服务中断。
防火墙:开放 443 端口(
sudo ufw allow 443/tcp
)。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。