ssl - 如何在 IIS 上使用自签名证书在 localhost 上配置 SSL?
问题描述
我对 IIS 很陌生,所以如果我在这里和我的业余爱好者误解了一些东西,请原谅我。我在这里为一个站点创建了一个自签名证书,在创建时需要将“*.site”作为友好名称吗?该友好名称需要将域名与站点匹配吗?然后我继续将证书绑定到站点,我选择了协议 https,输入主机名,IP xxx.xxx.xxx.xxx,端口(3000),选择证书然后单击确定,
我打开浏览器,证书被绑定到站点,并且 URL 保持为:“https://site.com:3000”。但该网站带有一个不安全的状态。
这是在本地主机上运行的。
我在这里遇到了这 2 个错误,第一个(SAN)与证书上缺少具有替代主题名称的包有关。我不能在自签名证书上添加该属性,对吗?第二个与“通用名称无效”有关,我不知道为什么会发生这种情况。
我需要一个北方来解决这个问题。提前致谢。
解决方案
SSL/TLS 对于非安全专家来说可能是一个颇具挑战性的话题,但是通过了解协议的工作原理,您的大部分问题都会得到解答。我不建议专注于 IIS 细节,而是研究SSL/TLS 的核心。
另一个重要的技术资源是RFC 5280,它提出了 Internet X.509 公钥基础设施证书和证书撤销列表 (CRL) 配置文件的标准。
要记住的一件事是:浏览器不喜欢自签名服务器证书。每当使用它时,都会发出很多警告。最常见的是(警告消息可能因版本而异):
- SSL 证书不是由受信任的 CA(证书颁发机构)颁发或使用自签名证书来保护网站。
不言自明的警告信息。
" RFC 2818描述了将域名与证书匹配的两种方法 - 使用 subjectAlternativeName 扩展中的可用名称,或者,在没有 SAN 扩展的情况下,回退到 commonName。在 RFC 2818 中不推荐使用回退到 commonName (发布于 2000 年),但许多 TLS 客户端仍然提供支持,通常是不正确的。”
第二个回答了您关于如何为您的服务器正确颁发自签名证书的大部分问题。
干杯。
推荐阅读
- node.js - next.js 应用程序中 node-postgres 的 db-migrate 未在 heroku 上找到环境变量
- php - 用新条目更新数据库记录并删除丢失的记录而不删除当前保存的条目的 PHP 算法
- c# - ASP.NET Core 使用之前上传的文件预填充 IFormFile
- linux - 来自远程 mongo 服务器的 Mongodump
- python-3.x - 如何将数据类型与python中的变量进行比较?
- java - 在 Java 中排除特定文件名的正则表达式
- c - 如何禁用进程的权限?
- flutter - Flutter/Dart - 为什么我的 Future 返回 Null?
- excel - 在 Excel VBA 中使用 WorksheetFunction.Trim 正在删除单元格中的颜色
- sql - 按转置的 SQL 组