繁体   English   中英

如何验证自签名证书?

[英]How can I verify a self-signed certificate?

我目前正在编写一个桌面应用程序,该应用程序需要通过https(带有自签名证书)与远程服务器上的PHP脚本进行通信。 服务器-客户端通信代码仍处于计划阶段,但是,因为我还没有弄清楚如何(在客户端上)验证我实际上正在与MY服务器通信。 我假设有某种方法可以使用证书来验证服务器身份。 我打算将WinHTTP用于https通讯,前提是它具有我需要的所有功能。

为了大大简化事情:客户端使用受信任的证书颁发机构的硬编码列表来验证服务器的证书。 证书颁发机构列表是发给客户端的内部证书列表,并且客户端验证服务器提供的证书是否已由客户端信任的证书颁发机构之一签名。

因此,无论您最终要做什么,您的客户端都必须保留某种其信任的证书列表。 这是TLS信任模型的基本方面。 您可以简单地将自签名证书包括在客户端中,然后客户端验证您的服务器提供了相同的证书。

但是正确的答案是运行自己的证书颁发机构。 它涉及一些额外的预先准备工作,但最终结果会好得多。 您的客户端将在其信任列表中仅拥有一个受信任的证书颁发机构:您自己的证书颁发机构,而不是您的操作系统或浏览器中包含的数十种左右的标准证书颁发机构:您自己的证书颁发机构,并且您的客户端将验证服务器的证书由证书颁发机构签名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM