Firefox强制开发域名使用SSL(与Chrome一致)
解决Firefox/Chrome自动将localhost重定向到HTTPS的问题,以及本地HTTPS配置方案
兄弟我太懂你这种糟心感了——之前Chrome先搞强制localhost跳HTTPS的时候没当回事,毕竟主要用Firefox,结果现在Firefox也跟进,一下子把本地开发流程打断了。先给你吃个定心丸:完全不需要花钱购买SSL证书,本地开发用自签名证书或者工具生成的信任证书就足够搞定了,下面给你两种实用方案:
方案一:手动生成自签名证书(适合爱折腾的开发者)
如果你喜欢自己掌控每一步,用OpenSSL就能搞定:
- 首先确保你电脑上装了OpenSSL(没装的话,Linux用包管理器、Mac用Homebrew、Windows直接下载安装包就行)
- 执行下面的命令生成证书和密钥文件:
openssl req -x509 -out localhost.crt -keyout localhost.key \ -newkey rsa:2048 -nodes -sha256 \ -subj "/CN=localhost" -extensions EXT -config <( \ printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth") - 生成后会得到
localhost.crt(证书文件)和localhost.key(密钥文件),接下来需要把证书导入Firefox让它信任:- 打开Firefox,地址栏输入
about:preferences#privacy - 滚动到「证书」区域,点击「查看证书」
- 切换到「证书机构」标签页,点击「导入」,选择刚才生成的
localhost.crt - 勾选「信任由此证书机构标识的网站」,点击确定保存
- 打开Firefox,地址栏输入
- 最后在你的本地服务配置里(比如Nginx、Apache,或者你用的Node.js/Python开发框架),指定这两个文件开启HTTPS服务就行。
方案二:用工具一键生成(懒人友好,强烈推荐)
不想手动折腾的话,mkcert这个工具能帮你省超多事,它会自动生成受本地所有浏览器信任的证书:
- 先安装mkcert:
- Mac:
brew install mkcert - Windows:
choco install mkcert - Linux:根据发行版用对应的包管理器安装,比如Ubuntu用
apt install mkcert
- Mac:
- 安装本地信任的CA(证书颁发机构):
mkcert -install - 生成localhost的证书:
mkcert localhost - 同样会得到两个证书文件,把它们配置到你的本地服务中,浏览器会自动信任这个证书,再也不会出现强制跳HTTPS或者「不安全」的提示了。
补充说明
浏览器之所以会自动把localhost重定向到HTTPS,是因为HSTS(HTTP严格传输安全)机制——现在主流浏览器都默认把localhost加入了HSTS列表,强制使用HTTPS连接。只要你配置了有效的本地证书,这个问题就彻底解决了,完全不用纠结付费证书的事。
内容的提问来源于stack exchange,提问作者mafortis
相关产品推荐
相关产品推荐

