背景
我有一组内部公司网站,需要 TLS 证书。我看了很多教程,最后使用 OpenSSL 创建了一个自签名根证书。然后我使用此证书为内部网站签署服务器证书。
最后,我手动将根证书添加到我们所有计算机上的受信任根存储和钥匙串中。一切似乎都很好。所有网站都显示绿色挂锁。然而,我今天发现了一个问题。
问题
其中一个内部站点是 Github Enterprise 的安装。我尝试使用 GitHub Desktop 程序连接到它,并收到以下消息:
schannel:下一次 InitializeSecurityContext 失败:未知错误(0x80092012) - 撤销功能无法检查证书的撤销。
坦白说,我不知道该怎么做才能解决这个问题。任何帮助我都会很感激,即使只是教我如何绕过错误。
答案1
- 当证书颁发机构向安全网站颁发证书时,该证书通常包含允许客户端浏览器验证证书是否被错误颁发(或被泄露)并随后被证书颁发机构撤销的信息。
- 证书颁发机构 (CA)是必要的跟踪他们撤销的 SSL 证书。证书颁发机构 (CA) 撤销 SSL 证书后,CA 会获取证书的序列号并将其添加到证书撤销列表 (CRL) 中。证书颁发机构的证书撤销列表的 URL 包含在每个 SSL 证书的 CRL 分发点字段中。
下一步(现在错误未涵盖,但接下来会出现)
- 要检查 SSL 证书的撤销状态,客户端需要连接到 URL 并下载 CA 的 CRL。然后,客户端在 CRL 中搜索证书的序列号,以确保证书未被撤销。
因此,你必须
- 在您颁发的所有证书中都有“CRL 分发点”(请参阅x509v3_config 手册页有关#扩展部分格式的详细信息)
- 使用有效数据填写“CRL 分发点”
- 拥有正确格式的列表(客户端工具可以理解)