openssl -connect返回错误的证书

use*_*632 6 apache ssl certificate

这是我的问题.我在一个apache webserver上托管了多个域.(虚拟主机)其中两个(a.com和b.com)使用ssl证书.我用这些命令配置了两个:

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/ABC.crt
    SSLCertificateKeyFile /etc/apache2/ssl/ABC.key
    SSLCertificateChainFile /etc/apache2/ssl/ABC.chain.crt
    SSLProtocol             all -SSLv2
Run Code Online (Sandbox Code Playgroud)

当我尝试通过浏览器(chrome,Firefox,IE)连接时,它工作正常,我得到了正确的证书.但在android上我有一个例外:没有同行证书

然后我尝试用这个命令测试它:

    openssl s_client -connect b.com:443
Run Code Online (Sandbox Code Playgroud)

它返回给我a.com的证书.有什么建议我做错了,我用openssl和android得到了错误的证书?

Ste*_*ich 12

在同一IP地址上可能有多个主机,您需要使用服务器名称指示(SNI)来访问此站点.给你SNI openssl s_client使用-servername选项,例如 openssl s_client -connect b.com:443 -servername a.com.至于android:根据https://developer.android.com/training/articles/security-ssl.html从2.3开始支持HttpsURLConnection但不支持Apache HTTP Client.