客户端证书认证失败

kel*_*unn 4 ssl certificate ssl-certificate

我正在尝试将最后的点点滴滴放在我正在编写的客户端/服务器应用程序上,但在 SSL 握手的最后一步似乎有些问题。

程序的客户端连接并与服务器建立安全连接,没有任何障碍,但如果我想从程序的服务器端运行操作,则无法建立任何连接。

当我尝试通过 Firefox(作为客户端)连接到我的服务器时,浏览器会提醒我该证书不适合连接。

在服务器端,我的日志反映有一个unknown cacertificate unkown每当我尝试从我的客户端接受字节。

我想我的问题归结为这一点:

您是否必须为客户端应用程序和服务器端应用程序制作不同的证书?这些有什么区别?

tyl*_*erl 5

与服务器证书唯一标识服务器(或域)的方式相同,客户端证书唯一标识客户端。就像服务器证书必须由客户端信任的人签名一样,客户端证书必须由服务器信任的人签名。

通常,当您将服务器配置为接受客户端证书时,您会指定一个必须用于签署客户端证书的签名证书。这让服务器知道客户端已“授权”,无论在您的上下文中可能意味着什么,因为大概您只会为“授权”用户签署证书。

大多数服务器通常可以允许客户端证书而不进行任何类型的验证,但有点违背了整个目的。