首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OpenSSL S_Server验证传入SSL

使用OpenSSL S_Server验证传入SSL
EN

Stack Overflow用户
提问于 2013-05-20 09:36:20
回答 2查看 34.2K关注 0票数 15

我们希望使用开放ssl进行双向证书身份验证。

当我们按如下方式打开s_server时,客户端能够连接到我的服务器:

代码语言:javascript
复制
openssl s_server -accept 12345 -cert our-cert.pem

(我们的证书是我们的证书。)

这个很好用。不过,我的要求是:

  1. 使用可信CA验证传入证书是否有效,以及
  2. 验证公共名称是否符合我们的预期。

我试过这样做:

代码语言:javascript
复制
openssl s_server -accept 12345 -cert our-cert.pem -CApath /etc/ssl/certs/

这允许客户端连接。但我的问题是:

  1. 我如何确保它正在验证阻止SSL是有效的,并由一个CA发出?
  2. 如何验证公共名称是我所期望的呢?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-21 06:06:49

对于服务器,需要添加"-Verify“选项,以强制客户端提供证书。深度是客户端证书链的最大长度。

这应该能解决问题1。

对于#2,我不确定是否存在使用这些OpenSSL命令限制公共名称的方法。

您可以在这里看到服务器/客户端命令的OpenSSL文档:

服务器

客户端

票数 8
EN

Stack Overflow用户

发布于 2014-04-10 07:55:16

要测试CA,请使用以下命令:

代码语言:javascript
复制
/usr/local/ssl/bin/openssl s_server -accept 7569 -cert /opt/GCTI/cert/host1_cert.pem -CAfile /opt/GCTI/cert/ca_cert.pem -key /opt/GCTI/cert/host1_priv_key.pem              

-cert is the public key file for this host
-key is the private key file for this host
-CAfile is the CA file, needed for self signed certificate
-port is the port number to open up

这将打开一个侦听端口7569,该端口将接受带有指定证书的TLS连接。

如果CA无效,则最后一行如下所示

代码语言:javascript
复制
Verify return code: 21 (unable to verify the first certificate)

若要连接到此服务器,请进行完整的端到端测试(并不是询问的问题)。

代码语言:javascript
复制
openssl s_client -showcerts -connect host1:7569 -CAfile  /opt/GCTI/cert/ca_cert.pem  

用实际的主机替换host1。这将验证TLS服务是否有效,并运行由同一个CA签名的证书。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16646557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档