我在OpenSSL中使用服务器和客户端身份验证。
SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, NULL);
但是客户端通常没有有效的域名,所以我想在验证过程中跳过域名检查。定制的验证回调函数可能会有所作为,但鉴于我对OpenSSL的了解有限,我会请求一些帮助。非常感谢。
答案 0 :(得分:1)
如何在OpenSSL中跳过域名验证?
没有必要跳过它,因为它不是由当前的OpenSSL实现执行的。当前的实现包括0.9.8,1.0.0和1.0.1。
但是,根据OpenSSL Change Log,OpenSSL 1.0.2和1.1.0将包含主机名验证:
*)集成主机名,电子邮件地址和IP地址检查 证书 验证。支持检查opensl实用程序的新验证选项。 [史蒂夫汉森]
*)对主机名和电子邮件的修复和通配符匹配支持 检查 功能。添加手册页。 [Florian Weimer(红帽产品安全团队)]
*)用于检查主机名电子邮件或IP地址的新功能 证书。添加选项x509实用程序以打印检查结果 证书。 [史蒂夫汉森]
根据更改日志,有一个-verify_name
选项,但我没有看到它的合并位置。 apps.c
似乎响应-verify_hostname
切换。但是s_client
没有响应任何一个开关,因此不清楚如何为客户端实现或调用主机名检查。