Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法在没有SSL证书的情况下清除HST?_Javascript_Ssl_Https_Hsts - Fatal编程技术网

Javascript 有没有办法在没有SSL证书的情况下清除HST?

Javascript 有没有办法在没有SSL证书的情况下清除HST?,javascript,ssl,https,hsts,Javascript,Ssl,Https,Hsts,最近,我为我的站点切换了服务器,我设法丢失了解密的SSL密钥,我记不起加密密钥的密码。 原来服务器已经打开了HSTS,现在很多访问者无法加载页面,因为我没有有效的SSL证书,他们的浏览器由于HSTS拒绝通过http连接 所以,我需要一种从浏览器中禁用HST的方法。要求他们清除浏览数据是不可能的,但我想知道我是否可以制作一个与firefox/chrome兼容的javascript来清除它。(脚本将位于不同的域上) 我已经仔细研究了一下,但是没有找到太多关于我应该如何处理这个问题的信息,如果可能的话

最近,我为我的站点切换了服务器,我设法丢失了解密的SSL密钥,我记不起加密密钥的密码。 原来服务器已经打开了HSTS,现在很多访问者无法加载页面,因为我没有有效的SSL证书,他们的浏览器由于HSTS拒绝通过http连接

所以,我需要一种从浏览器中禁用HST的方法。要求他们清除浏览数据是不可能的,但我想知道我是否可以制作一个与firefox/chrome兼容的javascript来清除它。(脚本将位于不同的域上)


我已经仔细研究了一下,但是没有找到太多关于我应该如何处理这个问题的信息,如果可能的话。也欢迎所有其他建议。

HSTS是为了做出权衡:您有责任从现在起永远提供浏览器可以依赖的安全SSL连接,这将导致浏览器拒绝与您的域建立SSL连接以外的任何连接。这会给您带来额外的负担,但会增加访客的安全性

浏览器将此首选项存储在任何网站都无法清除的内部数据库中。如果任何站点都可以通过Javascript简单地撤销这个偏好,那么整个系统将毫无意义

您必须手动清除数据库和/或删除该特定条目。每个浏览器都有不同的功能,请参阅以获取概述。

真正的解决方案:

  • 安装有效的证书
  • 让人们访问你的网站
  • 发送一个新的标题

  • 如今,获得有效的证书比一个三明治(8美元左右)便宜

    每个浏览器都将该列表存储在某个位置,但可能需要手动步骤才能清除。这就是HSTS的要点:您负责始终提供SSL连接,作为回报,您可以提高访问者的安全性。最好的做法是重新安装一个有效的证书。我很可能会安装一个自签名证书来解决这个问题。仍然值得一问,我感兴趣的是,是否有办法从网页上自动完成这项工作。值得注意的是,我使用的证书是StartComma的免费证书,只有在您将其安装到访问者的信任存储中时,自签名证书才会有用。否则,浏览器将不会信任您的站点,就像它根本没有证书一样。只要从某处获得另一个免费或便宜的证书,就没有那么难或昂贵了。我不完全确定浏览器在面对HSTS设置的自签名证书时会有什么表现。它应该干脆拒绝,甚至不给你信任它的选择。您必须手动将证书安装到信任存储中;在这一点上,您可以手动清除HSTS标志。我想这确实回答了我的问题。。谢谢你的澄清。既然letsencrypt是一个东西,我已经开始使用它了。