如何在浏览器上显示根数字证书?

时间:2014-08-25 08:51:49

标签: tomcat ssl https ssl-certificate digital-certificate

步骤

  1. 生成根证书

    一个。 openssl genrsa -out root-key.key 1024

    openssl req -new -out root-req.csr -key root-key.key -keyform PEM

    ℃。 openssl x509 -req -in root-req.csr -out root-cert.cer -signkey root-key.key -CAcreateserial

    d。 openssl pkcs12 -export -clcerts -in root-cert.cer -inkey root-key.key -out root.p12

  2. 使用根证书生成服务器证书和签名

    一个。 openssl genrsa -out server-key.key 1024

    openssl req -new -out server-req.csr -key server-key.key

    ℃。 openssl x509 -req -in server-req.csr -out server-cert.cer -signkey server-key.key -CA root-cert.cer -CAkey root-key.key -CAcreateserial -days 3650

    d。 openssl pkcs12 -export -clcerts -in server-cert.cer -inkey server-key.key -out server.p12

  3. 服务器证书转换为jks

    一个。 keytool -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore server.jks

  4. 配置tomcat

     <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
             maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
             clientAuth="false" sslProtocol="TLS" keystoreFile="server.jks"  
             keystoreType="JKS" keystorePass="123456" keyAlias="server"/>
    
  5. 启动tomcat并打开浏览器进行浏览。

  6. 问题是浏览器显示“unknow authority”(服务器证书由root发布,但浏览器不显示证书链,只显示服务器证书)?

    浏览器不知道证书颁发者,但某些网站可以显示证书颁发者(我没有在我的计算机上安装网站的根证书,我很确定!!)

    但是另一个网站可以显示根证书(https://kyfw.12306.cn/otn/

    我在浏览器中的证书

    enter image description here

    另一个网站(可以显示证书链,我很确定,我不会在我的电脑上安装它的证书)

    enter image description here

1 个答案:

答案 0 :(得分:0)

我无法对您的主要问题发表评论,因为我没有真正的服务器名称或真实的网址。然而...

  

但是另一个网站可以显示根证书(https://kyfw.12306.cn/otn/

我的Firefox或Safari版本不信任 kyfw.12306.cn 证书。 Firefox提示我出于安全例外。

此外,这是一个格式不正确的证书(见下文)。它看起来像一个终端实体(服务器)证书,但它设置了Certificate Sign位。我认为它可以在某些情况下用于证明证书。

如果我是你,我不相信服务器证书。

如果发行人, Sinorail证书颁发机构,定期对其进行签名,那么您应该期望签署其他格式错误的最终实体证书。在这种情况下,您应明确信任 Sinorail证书颁发机构

证书也有其他问题。就像缺少基本约束(可能是恶意设计决策)一样,一个没有意义的关键用法(Key Agreement与Diffie-Hellman参数一起使用,而不是基于RSA的证书),以及一个违反最佳实践的关键用法( Data Encipherment是公钥下的批量加密,不应执行此操作。 Non Repudiation没有任何意义,所以它是惰性的(我认为是CompSci的人试图成为律师)。


$ openssl s_client -connect kyfw.12306.cn:443 | \
          openssl x509 -text -noout
depth=1 C = CN, O = Sinorail Certification Authority, CN = SRCA
verify error:num=19:self signed certificate in certificate chain
verify return:0
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 4051956438837501785 (0x383b70e9b6441f59)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=CN, O=Sinorail Certification Authority, CN=SRCA
        Validity
            Not Before: May 26 01:44:36 2014 GMT
            Not After : May 25 01:44:36 2019 GMT
        Subject: C=CN, O=Sinorail Certification Authority, OU=\x94\xC1\x8D\xEF[\xA2b7g\x0DR\xA1N-_\xC3, CN=kyfw.12306.cn
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (1024 bit)
                Modulus:
                    00:bc:0b:19:73:f9:5f:f8:2a:45:24:f1:84:f1:57:
                    1c:e2:8b:bc:69:da:06:4f:5a:eb:95:06:2c:10:ea:
                    2c:0b:f7:c8:ad:ef:95:8d:1a:26:02:51:ab:03:5f:
                    2d:ce:f3:06:3e:3e:d6:45:be:01:0a:92:91:ea:43:
                    55:3a:b9:e9:a2:1d:2b:6d:85:44:b5:c5:30:6c:53:
                    f4:ee:5c:5e:80:1d:cf:a8:76:e3:fa:cc:21:8a:71:
                    49:c7:44:09:2c:45:bf:01:19:28:33:04:0f:d7:dc:
                    1f:42:50:a9:d8:6b:d6:00:d8:40:48:61:c7:2b:cc:
                    88:7a:69:10:23:0c:76:ef:61
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Authority Key Identifier: 
                keyid:79:5E:B6:77:B7:E2:52:83:43:ED:C7:51:88:4C:63:85:2C:00:43:58

            Netscape Cert Type: 
                SSL Client, SSL Server
            X509v3 Key Usage: 
                Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment, Key Agreement, Certificate Sign
            X509v3 Subject Key Identifier: 
                8F:FD:26:EF:88:E1:AB:DF:77:22:D3:C2:95:D3:47:60:B2:7C:F3:83
            X509v3 Extended Key Usage: 
                TLS Web Client Authentication, TLS Web Server Authentication
    Signature Algorithm: sha1WithRSAEncryption
         45:de:a1:39:2f:51:54:9e:43:30:31:14:8b:ea:7c:2e:63:bc:
         1b:80:a5:cc:e8:9e:7f:99:89:c8:be:e7:42:5c:bb:5e:c9:8e:
         a6:74:cc:48:e7:e0:7b:0d:1e:6e:7a:9f:c8:84:6e:63:9c:7f:
         5d:df:06:29:74:6a:3e:00:43:3f:61:19:b8:e6:bd:04:ae:7d:
         a0:7a:ff:f2:cc:d6:35:5e:fc:e4:95:00:a0:78:0b:d3:54:75:
         8e:4f:36:ce:c7:0f:37:4b:7e:44:23:8c:37:a1:08:00:da:d4:
         31:fe:4c:fd:fc:ef:d3:79:cc:5a:16:0e:07:a3:43:98:85:b0:
         08:74