Chrome提示"不安全"?3步让你的网站变成HTTPS
打开自己网站,地址栏赫然一把灰色小锁 + "不安全"三个字------这不是错觉,Chrome 正在告诉每一位访客:这个网站不安全。
更扎心的是,不只是 Chrome,Edge、Firefox 都在这么做。HTTP 站点在浏览器眼里就是"二等公民":地址栏标红、搜索排名靠后、部分功能直接禁用。
解决方法只有一个:给网站装上 SSL 证书,开启 HTTPS。听起来可能觉得很复杂,实际上只要 3 步,5 分钟就能搞定。
第1步:申请一张免费SSL证书
SSL 证书不用花钱买。Let's Encrypt 提供完全免费的 SSL 证书,而且没有数量限制。
最简单的方式是通过 乐此云签 在浏览器里完成申请,不需要碰命令行:
-
打开 乐此云签,注册并登录
-
点击 "申请证书",填写域名

- 单域名:直接输入
example.com - 泛域名:勾选 "泛域名,包含根域" ,一张证书覆盖
*.example.com+example.com(有多个子域名推荐选这个)
- 单域名:直接输入
-
点击 "点击获取验证码",输入验证码后提交申请
-
复制平台生成的 DNS 验证信息,去域名 DNS 管理控制台添加一条 CNAME 记录


-
回到平台点击 "立即验证",验证通过后证书自动签发

-
下载证书,选择你的服务器类型(Nginx/Apache/Tomcat/IIS)

提示:DNS 解析生效通常需要几分钟,验证失败的话等待2-3分钟后重试。
第2步:部署证书到服务器
下载的证书文件需要放到服务器上并配置 Web 服务启用 HTTPS。以下是最常用的 Nginx 配置示例:
Nginx 配置 HTTPS
-
将下载的证书文件(
.pem和.key)上传到服务器,如/data/nginx/ssl/目录 -
修改 Nginx 配置,添加 HTTPS server 块:
nginx
server {
listen 443 ssl;
server_name example.com www.example.com;
# 证书文件路径
ssl_certificate /data/nginx/ssl/example.com.pem;
ssl_certificate_key /data/nginx/ssl/example.com.key;
# SSL 优化配置
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;
# 网站根目录和其他配置
location / {
root /var/www/html;
index index.html;
}
}
- 测试并重载 Nginx:
bash
nginx -t # 测试配置是否正确
nginx -s reload # 重载配置
- 确保服务器防火墙/安全组放行了 443 端口
Apache 配置 HTTPS
apache
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/example.com.pem
SSLCertificateKeyFile /etc/apache2/ssl/example.com.key
# 其他配置...
</VirtualHost>
其他服务器(Tomcat、IIS)的配置方法可参考:Nginx/Tengine 配置 SSL、Apache 配置 SSL、Tomcat 安装 SSL
第3步:HTTP自动跳转HTTPS
证书装好了,HTTPS 也能正常访问了,但用户手动输入 http:// 还是会看到"不安全"。最后一步:强制所有 HTTP 请求跳转到 HTTPS。
Nginx 跳转配置
在 Nginx 配置中添加一个 HTTP server 块,将所有 80 端口请求 301 跳转到 HTTPS:
nginx
server {
listen 80;
server_name example.com www.example.com;
# 强制跳转HTTPS
return 301 https://$host$request_uri;
}
添加后重载 Nginx:nginx -s reload
Apache 跳转配置
确保 Apache 开启了 mod_rewrite 模块,然后在网站根目录的 .htaccess 中添加:
apache
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
IIS 跳转配置
- 打开 IIS 管理器,选择站点
- 双击 "SSL 设置" → 勾选 "要求 SSL"
- 在
web.config中添加跳转规则:
xml
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
完成!现在访问 http:// 会自动跳转到 https://,浏览器地址栏显示安全小锁。
别忘了:配置自动续期
免费 SSL 证书有效期只有 3 个月,忘续期 = 回到"不安全"。一步到位配置自动续期,从此再也不用操心:
-
在乐此云签证书列表中点击 "自动续期"
-
填写服务器信息,平台自动生成一键部署脚本

-
复制命令到服务器执行一次即可,后续全自动运行
Linux 示例:
bash
curl -o /usr/bin/letsencrypt-renew https://letsssl.cn/download/letsencrypt-renew
chmod +x /usr/bin/letsencrypt-renew
crontab -l > /etc/crontab && echo '18 4 10,25 * * root /usr/bin/letsencrypt-renew -token=你的Token -key_path=/data/nginx/ssl/example.com.key -server_type=nginx -cert_path=/data/nginx/ssl/example.com.cert -command="systemctl reload nginx" -backup=true ' >> /etc/crontab
crontab /etc/crontab
/usr/bin/letsencrypt-renew -token=你的Token -key_path=/data/nginx/ssl/example.com.key -server_type=nginx -cert_path=/data/nginx/ssl/example.com.cert -command="systemctl reload nginx" -backup=true
配置完成后,系统每15天自动检查一次,到期前自动续期并重载服务,证书永远不过期。
常见问题
Q1:配置完HTTPS后,浏览器还是显示"不安全"?
检查以下几点:
- 确认证书已正确部署,且没有过期
- 确认页面中是否还引用了 HTTP 资源(图片、脚本、CSS),即"混合内容"问题。浏览器控制台(F12)会列出具体的 HTTP 资源,将它们改为 HTTPS 或相对路径即可
- 确认证书的域名和实际访问的域名一致(如证书是
www.example.com,访问的却是example.com)
Q2:HTTPS 配置后网站打不开?
最常见的原因是 443 端口没有放行。去云服务器控制台的安全组/防火墙设置中,确认 443 端口已开放入站规则。
Q3:有必要每个页面都用HTTPS吗?
是的。只要有一个页面还是 HTTP,浏览器就会在地址栏显示"不安全"。现代做法是全站 HTTPS + 强制跳转,让用户无论从哪个入口进来都是安全的。
总结
从"不安全"到安全小锁,就3步:
| 步骤 | 操作 | 耗时 |
|---|---|---|
| 1 | 申请免费SSL证书 | 2分钟 |
| 2 | 部署证书到服务器 | 2分钟 |
| 3 | HTTP跳转HTTPS | 1分钟 |
加上配置自动续期,5分钟搞定,从此告别"不安全"提示。别让你的网站继续被浏览器标红,现在就动手。
相关阅读: