无法验证由自己的CA签名的证书

时间:2016-07-21 08:33:54

标签: ssl https openssl keytool

我们希望通过HTTPS连接新的WebService,我们希望设置服务器证书。我试图解释我到目前为止所做的步骤,详细说明:

  1. 我们使用以下命令创建了服务器证书:

    keytool -storepass * -keystore .my_keystore -keypass * -genkey -alias ALIAS -dname "CN=[FQDN here], OU=ID, O=*, L=*, ST=*, C=*" -keyalg RSA -keysize 2048 -validity 3000
    
  2. 我们为证书

    生成了签名请求
    keytool -storepass * -keystore .my_keystore -certreq -alias ALIAS -file ALIAS.csr
    
  3. 我们将CSR发送到我们公司(拥有自己的CA),并获得了签名证书。

  4. 我们验证了证书:

    openssl verify -CAfile CA_certificate.pem ALIAS_SIGNED.pem
    

    ALIAS_SIGNED.pem:好的

  5. 我们已在密钥库中导入此签名证书。

    keytool -importcert -keystore .my_keystore -alias ALIAS_SIGNED -file ALIAS_SIGNED.pem -storepass *
    
  6. 我们正在尝试使用安装在Java的cacerts文件中的公司CA证书从另一台计算机进行连接:

    $ openssl s_client -connect [IP]:[port]
    CONNECTED(00000003)
    depth=0 /C=*/ST=*/L=*/O=*/OU=ID/CN=[FQDN here]
    verify error:num=18:self signed certificate
    verify return:1
    depth=0 /C=*/ST=*/L=*/O=*/OU=ID/CN=[FQDN here]
    verify return:1
    Certificate chain
     0 s:/C=*/ST=*/L=*/O=*/OU=ID/CN=[FQDN here]
       i:/C=*/ST=*/L=*/O=*/OU=ID/CN=[FQDN here]
    Server certificate
    -----BEGIN CERTIFICATE-----
    ABcDefGHI...z
    -----END CERTIFICATE-----
    subject=/C=*/ST=*/L=*/O=*/OU=ID/CN=[FQDN here]
    issuer=/C=*/ST=*/L=*/O=*/OU=ID/CN=[FQDN here]
    No client certificate CA names sent
    SSL handshake has read 1610 bytes and written 279 bytes
    New, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC3-SHA
    Server public key is 2048 bit
    Secure Renegotiation IS supported
    Compression: NONE
    Expansion: NONE
    SSL-Session:
        Protocol  : TLSv1
        Cipher    : EDH-RSA-DES-CBC3-SHA
        Session-ID: 5790...EAB54
        Session-ID-ctx: 
        Master-Key: D07...3E13
        Key-Arg   : None
        Start Time: 1369086263
        Timeout   : 300 (sec)
        Verify return code: 18 (self signed certificate)
    closed
    
  7. 但是这个错误就是我得到的。我试图在任何可能的密钥库中安装所有可能的证书(CA,签名和不签名),但openssl客户端不验证它。

    请提供任何提示吗?

    对不起,如果这里有任何不一致的地方(例如混合keytool和openssl):我们是新手,经过多天的努力,没有达到任何有效的解决方案。

1 个答案:

答案 0 :(得分:0)

别名应与FQDN匹配。