客户端证书

问题描述:

我构建了一个与服务器通信的客户端软件。连接应该是安全的(SSL) 我使用Linux的openssl库。在SSL握手期间,服务器询问我的客户端证书,但我没有。我连我的浏览器到该服务器的浏览器 不断证书,我发现我it.Than把它放在我的源代码是这样的:客户端证书

if (SSL_CTX_use_certificate_file(ctx, "client.crt", SSL_FILETYPE_PEM) <= 0) 
{ 
    ERR_print_errors_fp(stderr); 
    exit(1); 
} 

但服务器仍然给我请求我的客户证书和下降connection.I假设我需要一个更多的文件密钥文件,但是我不知道在哪里可以找到它。 任何人都可以帮忙吗?

+0

你问社区你的私钥的价值吗? – Jumbogram

假设你可以找到你的私钥,你可以简单地加载它int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type

+0

您的意思是我应该生成自己的密钥文件吗?它不起作用。我试过了,因为客户端证书和私钥不匹配。我使用函数SSL_CTX_check_private_key()来查看。 – Lambov

正如Jumbogram所述,您必须将匹配的私钥加载到您尝试加载的证书文件中。您不能只生成一个新密钥并使用它,因为密钥和使用该密钥签名的证书不匹配。

取而代之,使用openssl生成一个新的密钥和证书对,并将SSL_CTX_ *函数指向它们。