Ubuntu Apache创建有效自签名SSL证书以消除HTTPS不安全提示
解决Apache自签名SSL证书浏览器提示不安全的问题
我来帮你搞定这个问题——浏览器提示自签名证书"Not secure"是完全正常的,因为自签名证书没有被浏览器预装的可信根证书颁发机构(CA) 背书。不过我们有几种方案可以消除这个提示,分情况给你说明:
方案一:让浏览器信任你的自签名证书(适合开发/测试环境)
不管你怎么生成自签名证书,只要不把它加入浏览器的信任列表,浏览器都会判定它"不安全"。所以最简单的办法是手动导入证书到浏览器:
操作步骤:
Firefox
- 打开设置 → 隐私与安全 → 滚动到「证书」区域,点击「查看证书」
- 切换到「证书机构」标签 → 点击「导入」
- 选择你生成的
.crt证书文件,勾选「信任该证书识别网站」,确认保存即可
Chrome/Edge
- 打开设置 → 隐私和安全 → 安全 → 管理证书
- 切换到「受信任的根证书颁发机构」标签 → 点击「导入」
- 按照向导选择你的
.crt证书,一路确认导入,重启浏览器后就不会再提示了
方案二:生成带SAN的规范自签名证书(避免额外警告)
很多时候浏览器除了不信任自签名证书,还会因为证书缺少Subject Alternative Name(SAN) 字段而额外警告。生成带SAN的证书能避免这类问题,步骤如下:
- 创建一个OpenSSL配置文件(比如
~/openssl-san.cnf),内容如下:
[req] distinguished_name = req_distinguished_name x509_extensions = v3_ca prompt = no [req_distinguished_name] CN = your-domain.local # 替换成你的域名或服务器IP [v3_ca] subjectAltName = @alt_names keyUsage = digitalSignature, keyEncipherment extendedKeyUsage = serverAuth [alt_names] DNS.1 = your-domain.local DNS.2 = www.your-domain.local # 如果用IP访问,添加这行:IP.1 = 192.168.1.100 # 替换成你的服务器IP
- 用这个配置生成证书和密钥:
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \ -keyout /etc/ssl/private/your-domain.key \ -out /etc/ssl/certs/your-domain.crt \ -config ~/openssl-san.cnf
- 更新Apache的SSL虚拟主机配置,指向新的证书和密钥,然后重启Apache:
sudo systemctl restart apache2
生成完这个证书后,还是需要按照方案一的步骤导入到浏览器信任,才能消除提示。
方案三:使用免费可信CA证书(适合生产环境)
如果是生产环境,强烈推荐使用Let's Encrypt的免费证书,这样不需要手动导入,所有主流浏览器都会自动信任:
- 安装Certbot工具:
sudo apt update && sudo apt install certbot python3-certbot-apache
- 自动配置Apache和证书:
sudo certbot --apache
- 按照提示完成操作:输入邮箱、同意条款、选择要配置的域名,Certbot会自动修改Apache的SSL配置,安装证书,并且设置自动续期(证书有效期90天,续期完全自动)。
内容的提问来源于stack exchange,提问作者Ratanak Tith
相关产品推荐
相关产品推荐

