解决XAMPP本地localhost HTTPS连接显示‘不安全’的问题
解决XAMPP本地HTTPS访问的“不安全”警告
浏览器显示“不安全”警告的核心原因是XAMPP默认提供的SSL证书是自签名证书,这类证书未被浏览器信任的根证书颁发机构背书,因此会触发安全提示。以下是两种可行的解决方法:
方法1:手动信任XAMPP默认证书
- 访问
https://localhost/example/,点击地址栏的“不安全”标识(锁图标旁的感叹号) - 查看证书详情,选择导出证书(不同浏览器操作略有差异):
- Chrome:点击「证书」→「详细信息」→「复制到文件」,选择Base64编码的X.509格式导出为
.crt文件 - Firefox:点击「查看证书」→「导出」,保存为PEM格式证书
- Chrome:点击「证书」→「详细信息」→「复制到文件」,选择Base64编码的X.509格式导出为
- 将证书导入系统信任库:
- Windows:按下
Win+R输入certmgr.msc,打开证书管理器;在「受信任的根证书颁发机构」→「证书」右键选择「所有任务」→「导入」,选择导出的证书完成导入 - macOS:打开「钥匙串访问」,导入证书后找到该证书,右键「显示简介」,将「信任」设置为「始终信任」
- Windows:按下
- 重启浏览器,再次访问HTTPS地址即可消除警告
方法2:生成适配localhost的自定义自签名证书
如果想使用更规范的本地证书,可自行生成:
- 打开XAMPP Shell(或系统命令提示符,切换到
C:\xampp\apache\bin目录) - 执行以下OpenSSL命令生成证书和私钥(直接复制执行即可,默认适配localhost):
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes ^ -keyout localhost.key -out localhost.crt ^ -subj "/CN=localhost" ^ -addext "subjectAltName=DNS:localhost,DNS:*.localhost,IP:127.0.0.1" ^ -addext "keyUsage=digitalSignature,keyEncipherment" ^ -addext "extendedKeyUsage=serverAuth"
(注:Windows命令提示符下用^换行,Linux/macOS用\)
3. 将生成的localhost.key移动到C:\xampp\apache\conf\ssl.key,localhost.crt移动到C:\xampp\apache\conf\ssl.crt
4. 修改Apache的SSL配置文件httpd-ssl.conf(通常在C:\xampp\apache\conf\extra目录),替换证书路径:
<VirtualHost _default_:443> DocumentRoot "C:/xampp/htdocs" ServerName localhost:443 SSLEngine on SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/localhost.crt" SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/localhost.key" </VirtualHost>
- 重启Apache服务,再按照方法1的步骤信任新证书,即可正常访问HTTPS地址
补充提示
- 确保
httpd.conf中已开启SSL配置引用,通常有一行Include conf/extra/httpd-ssl.conf,默认是启用状态 - 自签名证书仅适用于本地开发场景,绝对不能用于生产环境
内容的提问来源于stack exchange,提问作者Zohaib Amir
相关产品推荐
相关产品推荐

