HTTPS配置的核心要点是:申请SSL证书并部署到服务器,同时强制HTTP跳转HTTPS,全程仅需几步操作即可完成。

为什么网站必须配置HTTPS
2026年的互联网环境里,HTTPS早已不是可选项而是必选项,浏览器对未加密网站直接标记“不安全”,搜索引擎在排名算法中明确偏向HTTPS站点,用户看到地址栏的小锁图标才会放心输入信息,更重要的是,HTTP协议传输的数据是明文状态,任何中间环节都能截获密码、身份证号、银行卡信息,这种风险在电商、支付、登录场景下完全不可接受。
从技术层面看,HTTPS在HTTP和TCP之间加入了TLS/SSL加密层,通过证书验证服务器身份,用对称加密保护数据传输,用非对称加密完成密钥交换,这套机制同时解决了三个问题:数据机密性、数据完整性、身份真实性,行业共识认为,HTTPS配置是网站上线的基础安全门槛,不是可选的加分项。
获取SSL证书的三种途径
免费证书与付费证书怎么选
选择证书类型前,先明确自己的需求,个人博客、企业展示站、测试环境,用免费DV证书完全够用,电商平台、金融业务、品牌官网,建议购买OV或EV证书,因为地址栏会显示企业名称,用户信任度明显更高。
| 证书类型 | 验证级别 | 签发速度 | 适用场景 | 价格区间 |
|---|---|---|---|---|
| DV(域名验证) | 仅验证域名所有权 | 几分钟 | 个人网站、测试环境 | 免费或几十元/年 |
| OV(组织验证) | 验证域名+企业资质 | 1-3个工作日 | 企业官网、中小电商 | 数百至数千元/年 |
| EV(扩展验证) | 最严格审核 | 3-7个工作日 | 金融机构、大型品牌 | 数千至上万元/年 |
免费证书申请实操步骤
以Let’s Encrypt为例,这是目前使用最广的免费证书颁发机构,通过Certbot工具可以全自动申请和续期。
# 安装Certbot(以Ubuntu系统为例) sudo apt update sudo apt install certbot python3-certbot-nginx # 自动获取证书并配置nginx sudo certbot --nginx -d example.com -d www.example.com # 测试自动续期 sudo certbot renew --dry-run
Certbot会自动修改nginx配置,整个过程大约需要3分钟,需要注意,免费证书有效期是90天,必须配置自动续期任务,据统计,相当一部分网站因忘记续期导致证书过期,直接造成用户访问时看到红色警告页面。
付费证书申请流程
购买付费证书的核心步骤是生成CSR文件并提交给证书颁发机构,在服务器上执行:
# 生成私钥和CSR文件 openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr # 查看CSR内容 cat example.com.csr
复制到证书服务商的申请页面,完成域名验证(通常是在域名解析中添加TXT记录)或企业资质审核,等待签发后下载证书文件,多数情况下,OV证书在1个工作日内能完成签发。
主流服务器HTTPS配置方法
nginx服务器https配置步骤
nginx是使用率最高的Web服务器,配置HTTPS的核心是修改站点配置文件。
server {
listen 443 ssl http2;
server_name example.com www.example.com;
# 证书文件路径
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# 安全协议配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
root /var/www/html;
index index.html;
}
# HTTP强制跳转HTTPS
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
修改后执行 nginx -t 检查语法,systemctl reload nginx 重载配置,这个配置启用了HTTP/2提升加载速度,禁用了老旧的TLS 1.0/1.1协议,设置了安全的加密套件组合。

Apache服务器HTTPS配置
Apache的HTTPS配置主要通过修改虚拟主机文件实现。
<VirtualHost :443>
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/private/example.com.key
SSLCertificateChainFile /etc/ssl/certs/chain.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
SSLHonorCipherOrder on
</VirtualHost>
<VirtualHost :80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
启用SSL模块并重启服务:
sudo a2enmod ssl sudo systemctl restart apache2
宝塔面板HTTPS配置方法
国内用户使用宝塔面板的比例很高,在面板中配置HTTPS更加直观,进入“网站”->“站点列表”->点击站点名->“SSL”菜单,选择“Let’s Encrypt”并勾选域名,点击申请即可自动完成,申请成功后开启“强制HTTPS”开关,面板会自动添加跳转规则,宝塔面板还支持一键部署多种证书格式,方便更换证书类型。
网站https配置的五大关键细节
全站HTTPS与混合内容处理
配置完证书只是第一步,很多网站会忽略混合内容问题,页面中如果存在HTTP协议的图片、CSS、JavaScript资源,浏览器会拦截部分请求,导致页面样式错乱或功能失效,同时地址栏不显示小锁标志。
排查方法:打开浏览器开发者工具(F12),切换到Console面板,所有被拦截的混合内容都会显示警告信息,修复方式有三种:
- 将资源路径改为相对路径(
/images/pic.jpg),自动跟随当前协议 - 在nginx中配置资源转发规则,将HTTP资源301跳转到HTTPS
- 使用Content-Security-Policy响应头升级请求
推荐在nginx中添加以下配置:
# 自动将页面中的HTTP资源替换为HTTPS sub_filter_once off; sub_filter 'http://' 'https://';
HSTS强制HTTPS
HSTS(HTTP严格传输安全)能强制浏览器在后续访问中直接使用HTTPS,跳过HTTP请求,既提升安全性又减少一次301跳转,在nginx配置中添加:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
注意启用HSTS前必须确保所有子域名都已配置HTTPS,否则子域名将无法通过HTTP访问。
证书链完整性与OCSP装订
证书链不完整是常见的配置错误,表现为部分浏览器提示“证书不受信任”,服务器需要同时配置站点证书和中间证书,购买的证书包中通常包含一个chain.pem或ca-bundle文件,Let’s Encrypt的fullchain.pem已包含完整链。

OCSP装订可以提升HTTPS握手速度约10%-30%,由服务器主动向浏览器提供证书状态,避免浏览器额外发起OCSP查询,nginx配置:
ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 1.1.1.1 valid=300s;
定期检查SSL配置是否安全
部署完成后不能一劳永逸,需要定期检查配置的规范性,推荐使用Qualys SSL Labs的在线检测工具,输入域名后会从证书链、协议版本、加密套件、漏洞风险等多个维度打分,评分达到A以上才算合格,国内环境下也可以用“myssl.com”进行检测,检测结果更加直观。
证书续期与自动化运维
付费证书的有效期通常为1-2年,到期前需要手动续费并重新部署,免费证书90天有效期迫使网站管理员实现自动化运维,Certbot的续期检查可以通过cron任务实现:
# 每天凌晨2点检查续期 0 2 certbot renew --quiet --deploy-hook "systemctl reload nginx"
用--deploy-hook参数在证书更新后自动重载nginx,整个流程无需人工介入。
Q&A:HTTPS配置常见问题解答
配置HTTPS后网站打不开怎么办
多数情况下是防火墙未放行443端口,检查云服务商的安全组规则和服务器本机防火墙,确保443端口对外开放,执行ss -tlnp | grep 443确认nginx正在监听443端口,用curl -v https://example.com查看SSL握手过程定位具体错误。
免费SSL证书和付费SSL证书有什么区别
本质安全强度相同,加密级别没有差异,区别在于验证深度和配套服务:DV证书只验证域名所有权,OV/EV证书验证企业真实身份,EV证书在地址栏直接显示企业名称,付费证书通常附带更高额度的安全赔付保险和人工客服支持,适合对信任度要求高的商业网站。
一个域名可以配置多个HTTPS证书吗
一个域名只能部署一个有效证书,但一张证书可以同时保护多个域名,使用SAN(主体备用名称)证书,在申请时将example.com和www.example.com同时填入,或者将多个不同域名添加到同一张证书中,nginx中配置SAN证书与单域名证书方式一致,只需在server_name中列出所有域名。
https配置会影响网站收录和排名吗
百度官方明确表示HTTPS是排名因子之一,同等条件下HTTPS站点排名优于HTTP站点,配置正确的情况下,全站301跳转能完整传递权重,不会影响收录,需要特别注意在百度搜索资源平台提交HTTPS改版规则,帮助搜索引擎更快识别站点协议变更。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/525915.html