当前位置:首页 > 行业动态 > 正文

http网站怎么改为https

将HTTP改为HTTPS需:1.申请SSL证书(如Let’s Encrypt免费版);2.配置服务器安装证书;3.修改网站资源链接为https;4.设置301重定向强制HTTPS访问

HTTP与HTTPS的区别

特性 HTTP HTTPS
协议层 明文传输 加密传输(SSL/TLS)
安全性 无数据加密,易被窃取或改动 数据加密,防窃听、防改动
身份验证 无域名身份验证 通过CA机构验证域名真实性
SEO权重 较低(搜索引擎视为不安全) 更高(搜索引擎优先收录)
地址栏标识 无特殊标识 显示“https://”及锁状图标

HTTPS改造核心步骤

获取SSL证书

证书类型 特点 适用场景
免费证书 DV SSL(Domain Validation) 个人站点、小型网站
付费证书 OV/EV SSL(组织/扩展验证) 企业站、电商、金融等需高信任场景
通配符证书 支持子域名(如 .example.com 多子域名站点

免费证书申请(以Let’s Encrypt为例):

# 安装Certbot工具(Ubuntu/Debian)
sudo apt install certbot -y
# 自动获取证书(Apache示例)
sudo certbot --apache -d example.com -d www.example.com
# 手动获取证书(Nginx示例)
sudo certbot certonly --standalone -d example.com

服务器配置

(1)Apache配置
编辑 sites-available/default-ssl.conf,添加:

http网站怎么改为https  第1张

<VirtualHost :443>
    ServerName example.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    # 强制HSTS(提升安全性)
    Header always add Strict-Transport-Security "max-age=31536000; includeSubDomains"
</VirtualHost>

(2)Nginx配置
server 块中添加:

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    # 强制HSTS
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

重定向HTTP到HTTPS

(1)Nginx配置
server 块中监听80端口并重定向:

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

(2)Apache配置
.conf 中添加:

<VirtualHost :80>
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost>

验证HTTPS生效

  1. 浏览器检查:访问网站,确认地址栏显示“https://”及锁状图标。
  2. 证书有效性检测:使用 SSL Labs 或 Qualys SSL 工具检测。
  3. 强制HSTS:确保 Strict-Transport-Security 头已生效(可通过浏览器F12开发者工具查看)。

常见问题与解决方案

问题 解决方案
浏览器提示“不安全” 检查证书链是否完整,确保中间证书已安装
(HTTP资源) 修改所有资源链接为HTTPS,或本地化资源(如CSS/JS)
证书过期 设置自动续期(Certbot可配合cron定时任务)
部分页面仍加载HTTP资源 检查CDN、第三方脚本是否支持HTTPS,或更换HTTPS版本

相关问题与解答

Q1:HTTPS改造后,旧链接会失效吗?

A:不会,通过301重定向,所有HTTP请求会自动跳转到HTTPS,搜索引擎也会逐步更新索引,但需确保站内所有链接(包括图片、CSS、API接口)均改为HTTPS。

Q2:如何防止证书过期导致网站无法访问?

A

  1. 自动续期:使用Certbot的renew命令或配置定时任务(如cron)自动更新证书。
    # 每天凌晨2点自动续签
    0 2    /usr/bin/certbot renew --quiet --no-random-sleep-on-renew > /var/log/certbot-renew.log
  2. 监控告警:通过工具(如Prometheus+Grafana)监控证书
0