ssl - 自签名证书 : Can I trust the client being indeed the owner of the public key?

标签 ssl openssl ssl-certificate

我正在使用 OpenSSL,在我的服务器代码中有以下内容:

rc = SSL_get_verify_result(ssl);
printf("SSL_get_verify_result(): %i\n", rc);

cert = SSL_get_peer_certificate(ssl);
printf("SSL_get_peer_certificate(): %p\n", cert);

pkey = X509_get_pubkey(cert);
printf("X509_get_pubkey(): %p\n", pkey);

SSL_get_verify_result() 返回预期的 X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN

我的问题是,在 SSL_get_verify_result() 因以上错误。

换句话说,我可以使用这个公钥执行身份验证吗(假设我的服务器以某种方式知道这个公钥)。

谢谢!

最佳答案

您可以相信对等方拥有他提供的证书的私钥,因为他还提供了一个数字签名,该数字签名由 SSL 使用证书中的公钥进行检查。只有私钥的所有者才能这样做。

您是否相信对等方拥有主题 DN 中表达的身份取决于您是否信任颁发者,在自签名证书的情况下就是他自己。

而该身份是否已授权与您的应用程序通信是另一个问题,只有您的应用程序才能回答。

关于ssl - 自签名证书 : Can I trust the client being indeed the owner of the public key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21688343/

相关文章:

java - rmi over ssl/tls,有什么方法可以安全地识别调用者?

mysql - AWS DMS 无法将 SSL 要求模式用于 MySQL

apache - 如何在服务器上安装cer证书?

c# - 使用 openssl 在 iPhone 上正确获取 HMACSHA1

android - javax.net.ssl.SSLException : Not trusted server certificate on Galaxy Tab 7 only? 异常

google-cloud-platform - 在 Google Cloud VM 上运行 Jupyter Notebook 时出现 SSL 错误

python - 尝试在 Python 中使用 LetsEncrypt 运行 SSL 包装的 BaseHTTPServer 失败

ssl - Asterisk :SIP 调用 120 秒后为 "TLS clean shutdown alert reading data"

firefox - 当站点的 SSL 证书更改时让浏览器通知您

ssl - 如果 SSL/TLS 证书没有真正的签名/CA,为什么它们是自签名的?