zoukankan      html  css  js  c++  java
  • 由java派生出来的证书错误

    未安装请求对应接口证书时的异常:> javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

    软件组的同事在进行软件升级时出现如上错误,查看其错误,初步判断其未安装java的jdk包和公司证书导致而成
    解决方法:

    安装jdk软件
    1、下载linux的jdk版本
        #mkdir /application && cd /application
    # wget https://download.oracle.com/otn/java/jdk/11.0.5+10/e51269e04165492b90fa15af5b4eb1a5/jdk-11.0.5_linux-x64_bin.tar.gz?AuthParam=1571751391_d13df5b618e17c92b768f1f09a9ead41
    2、安装jdk
        这里下载的是tar.gz二进制版本,只需要解压就可以使用了
        #mkdir -p /usr/local/java    #建立java目录
        #tar xf jdk-11.0.5_linux-x64.bin.tar.gz  -C /usr/local/java
                #把jdk解压到指定目录    
        #vim /etc/profile
        JAVA_HOME=/usr/local/java/jdk-13.0.1;export JAVA_HOME
        PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/lib
        #source /etc/profile
    3、上传公司证书和导入证书
        #cd /usr/local/java && rz
        上传公司的crt证书,我以我司的为例,导入server.crt
        # keytool -import -alias server.crt  -keystore cacerts -file /usr/local/java/server.crt -trustcacerts
        #命令keytool就是导入证书的命令,其中第一个server.crt为现在证书的路径,我这里路径为/usr/local/java
        #第二个server.crt为导入后的证书别名,我这里与原证书名一致
    Enter keystore password:       #这里提示输入口令,默认为changeit
    Re-enter new password:     #下面为公司的证书内容
    Owner: CN=*.luxshare-ict.com, OU=PositiveSSL Wildcard, OU=Domain Control Validated
    Issuer: CN=COMODO RSA Domain Validation Secure Server CA, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB
    Serial number: 1294f3aa047d0ab5dba26e74866f4e8c
    Valid from: Wed Jul 19 08:00:00 CST 2017 until: Sat Oct 17 07:59:59 CST 2020
    Certificate fingerprints:
    	 MD5:  7E:BD:72:8C:B3:94:70:59:3A:CA:98:3E:1E:2B:98:86
    	 SHA1: 66:AF:D3:22:7F:C5:5B:B4:DC:1B:24:C2:17:D5:40:C3:7F:94:CB:EE
    	 SHA256: 04:4A:66:2D:CD:75:86:B8:E1:1F:D7:A6:3D:63:BF:6C:03:6F:AC:AC:45:57:32:F2:1C:C7:44:11:80:AC:10:ED
    	 Signature algorithm name: SHA256withRSA
    	 Version: 3
    
    Extensions: 
    
    #1: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
    AuthorityInfoAccess [
      [
       accessMethod: caIssuers
       accessLocation: URIName: http://crt.comodoca.com/COMODORSADomainValidationSecureServerCA.crt
    , 
       accessMethod: ocsp
       accessLocation: URIName: http://ocsp.comodoca.com
    ]
    ]
    
    #2: ObjectId: 2.5.29.35 Criticality=false
    AuthorityKeyIdentifier [
    KeyIdentifier [
    0000: 90 AF 6A 3A 94 5A 0B D8   90 EA 12 56 73 DF 43 B4  ..j:.Z.....Vs.C.
    0010: 3A 28 DA E7                                        :(..
    ]
    ]
    
    #3: ObjectId: 2.5.29.19 Criticality=true
    BasicConstraints:[
      CA:false
      PathLen: undefined
    ]
    
    #4: ObjectId: 2.5.29.31 Criticality=false
    CRLDistributionPoints [
      [DistributionPoint:
         [URIName: http://crl.comodoca.com/COMODORSADomainValidationSecureServerCA.crl]
    ]]
    
    #5: ObjectId: 2.5.29.32 Criticality=false
    CertificatePolicies [
      [CertificatePolicyId: [1.3.6.1.4.1.6449.1.2.2.7]
    [PolicyQualifierInfo: [
      qualifierID: 1.3.6.1.5.5.7.2.1
      qualifier: 0000: 16 1D 68 74 74 70 73 3A   2F 2F 73 65 63 75 72 65  ..https://secure
    0010: 2E 63 6F 6D 6F 64 6F 2E   63 6F 6D 2F 43 50 53     .comodo.com/CPS
    
    ]]  ]
      [CertificatePolicyId: [2.23.140.1.2.1]
    []  ]
    ]
    
    #6: ObjectId: 2.5.29.37 Criticality=false
    ExtendedKeyUsages [
      serverAuth
      clientAuth
    ]
    
    #7: ObjectId: 2.5.29.15 Criticality=true
    KeyUsage [
      DigitalSignature
      Key_Encipherment
    ]
    
    #8: ObjectId: 2.5.29.17 Criticality=false
    SubjectAlternativeName [
      DNSName: *.luxshare-ict.com
      DNSName: luxshare-ict.com
    ]
    
    #9: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    0000: D0 9B 0D 21 28 B7 E3 79   C5 2D 7F FB 84 00 CD 31  ...!(..y.-.....1
    0010: 34 E5 70 D3                                        4.p.
    ]
    ]
    
    Trust this certificate? [no]:  y      #这里提示是否信任此证书,默认输入y
    Certificate was added to keystore
    经过上面一步,则完成证书导入,但是否导入成功,可使用命令先测试一下,
    #查看某个证书
    #keytool -list -keystore cacerts |grep server    #查看公司证书
    Enter keystore password:  changeit
    server.crt, Nov 8, 2019, trustedCertEntry,        #查看证书
    后来与软件组同事沟通,发现可以正常使用了,至此java派来出来的证书问题解决了。特此记录一下,以方便日后查看
    至于命令keytool的使用,可以使用man来查看,
    基本上导入证书的话,使用keytool -import
         查看证书的话,使用keytool -list
    

    至于windows的导入证书那就简单了,可以参考百度,或跟我沟通,我给你。

  • 相关阅读:
    Git_学习_01_ 常用 Git 命令清单
    Git_错误_03_ Git提交时显示用户 unknown
    Java微信小程序开发_00_资源帖
    Git_错误_02_error: src refspec master does not match any
    Java企业微信开发_08_素材管理之下载微信临时素材到本地服务器
    Java企业微信开发_07_JSSDK多图上传
    Java企业微信开发_07_总结一下企业微信的配置
    Java_数据交换_dom4j_01_解析xml
    Git_学习_00_资源帖
    小结:线段树 & 主席树 & 树状数组
  • 原文地址:https://www.cnblogs.com/wang50902/p/11832490.html
Copyright © 2011-2022 走看看