ssl - 如果未安装 ca-certificate,请避免在网站上添加异常
问题描述
我用 openssl 创建了自己的 ca 证书。我有四个文件:
- ca.key(私人 ca 密钥)
- ca.crt(公共 ca 证书)
- server.key(私钥)
- server.crt(由 ca 文件签名的公共证书)
我使用带有 ssl 配置的 nginx。
ssl_certificate server.crt;
ssl_certificate_key server.key;
如果我在我的计算机上安装了 ca 公用证书,我的浏览器让我可以在不添加异常的情况下访问网站,这很好。但是如果我的电脑上没有安装ca证书,我必须添加例外才能通过。我想避免添加异常并强制用户在他们的计算机上安装 ca 证书。
我用 hsts(http 严格传输安全)配置 nginx:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate ca.crt;
不幸的是,我再次有可能添加一个例外来通过。
我想知道是否可以这样做?
解决方案
我意识到我的证书不适用于 chrome missing_subjectAltName
。所以我用这个链接修复了它。如果我的计算机上没有安装我的 ca 证书,现在我会收到带有 chrome 的这条消息:
您现在无法访问 localhost,因为该网站使用 HSTS。网络错误和攻击通常是暂时的,所以这个页面可能会在以后工作。
这正是我想要的。但是它在 Firefox 上不起作用,让我有可能添加一个例外。
为什么 chrome 会阻止它而不是 firefox ?我怎么能在 Firefox 上做到这一点?
推荐阅读
- c# - 如何使用查询字符串从 ActionFilterAttribute 请求重定向
- python - 融合两个数组
- webhooks - 在 Nextcloud 中搜索文件
- python - 数据库 PostgreSQL 中的访问错误
- craftcms - 如何渲染在 Craft 2 CMS 中上传的图像?
- python - Pandas 不会在我的逗号分隔的 .txt 文件中分隔列
- c# - .NET 中 NaN 数的错误 Math.Pow() 实现
- ember.js - Ember.Logger.log 已弃用,console.info 给出“无控制台”构建警告,该怎么办?
- c# - C#摘要授权,但在邮递员上工作
- javascript - 防止用户使用检查元素启用按钮