天天看点

Linux添加授信根证书,linux系统添加根证书 linux证书信任列表

1.linux 访问 https 证书问题

[[email protected] ~]# curl -v https://mobile.mycard520.com.tw

* About to connect() to mobile.mycard520.com.tw port 443 (#0)

*   Trying 220.130.127.122... connected

* Connected to mobile.mycard520.com.tw (220.130.127.122) port 443 (#0)

* Initializing NSS with certpath: sql:/etc/pki/nssdb

*   CAfile: /etc/pki/tls/certs/ca-bundle.crt

CApath: none

* Certificate is signed by an untrusted issuer: 'CN=TWCA Secure SSL Certification Authority,OU=Secure SSL Sub-CA,O=TAIWAN-CA,C=TW'

* NSS error -8172

* Closing connection #0

* Peer certificate cannot be authenticated with known CA certificates

curl: (60) Peer certificate cannot be authenticated with known CA certificates

More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"

of Certificate Authority (CA) public keys (CA certs). If the default

bundle file isn't adequate, you can specify an alternate file

using the --cacert option.

If this HTTPS server uses a certificate signed by a CA represented in

the bundle, the certificate verification probably failed due to a

problem with the certificate (it might be expired, or the name might

not match the domain name in the URL).

If you'd like to turn off curl's verification of the certificate, use

the -k (or --insecure) option.

2.现有 证书twca.cer 需要添加到 linux 证书信任列表

#转换格式 .cer 到 .pem

openssl x509 -inform der -in twca.cer  -out twca.pem

#追加到信任列表

cat twca.pem >> /etc/pki/tls/certs/ca-bundle.crt

3.添加后访问成功

[[email protected] certs]# curl -v https://mobile.mycard520.com.tw/billing/RECEIVE.aspx

* About to connect() to mobile.mycard520.com.tw port 443 (#0)

*   Trying 220.130.127.122... connected

* Connected to mobile.mycard520.com.tw (220.130.127.122) port 443 (#0)

* Initializing NSS with certpath: sql:/etc/pki/nssdb

*   CAfile: /etc/pki/tls/certs/ca-bundle.crt

CApath: none

* SSL connection using SSL_RSA_WITH_RC4_128_MD5

* Server certificate:

*       subject: CN=mobile.mycard520.com.tw,OU=IT,O=Soft-World International Corporation,L=Kaohsiung,ST=Taiwan,C=TW

*       start date: Apr 29 03:21:58 2015 GMT

*       expire date: Nov 12 15:59:59 2017 GMT

*       common name: mobile.mycard520.com.tw

*       issuer: CN=TWCA Secure SSL Certification Authority,OU=Secure SSL Sub-CA,O=TAIWAN-CA,C=TW

> GET /billing/RECEIVE.aspx HTTP/1.1

> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2

> Host: mobile.mycard520.com.tw

> Accept: */*

>

<

* Connection #0 to host mobile.mycard520.com.tw left intact

* Closing connection #0

{ "ResultCode":0

4.对于java中如果使用 HttpClient 访问https 可以使用以下命令导入到jre中的作为信任证书

keytool -import -keystore "/usr/local/jdk/jre/lib/security/cacerts"  -storepass changeit -keypass changeit -alias twca -file twca.cer

过程中提示是否信任:输入yes即可

Trust this certificate? [no]:

配置过程如下:

[[email protected] ~]# keytool -import -keystore "/usr/local/jdk/jre/lib/security/cacerts" -storepass changeit -keypass changeit -alias twca -file /root/twca.cer

Owner: CN=TWCA Root Certification Authority, OU=Root CA, O=TAIWAN-CA, C=TW

Issuer: CN=TWCA Root Certification Authority, OU=Root CA, O=TAIWAN-CA, C=TW

Serial number: 1

Valid from: Thu Aug 28 15:24:33 CST 2008 until: Tue Dec 31 23:59:59 CST 2030

Certificate fingerprints:

MD5: AA:08:8F:F6:F9:7B:B7:F2:B1:A7:1E:9B:EA:EA:BD:79

SHA1: CF:9E:87:6D:D3:EB:FC:42:26:97:A3:B5:A3:7A:A0:76:A9:06:23:48

Signature algorithm name: SHA1withRSA

Version: 3

Extensions:

#1: ObjectId: 2.5.29.15 Criticality=true

KeyUsage [

Key_CertSign

Crl_Sign

]

#2: ObjectId: 2.5.29.19 Criticality=true

BasicConstraints:[

CA:true

PathLen:2147483647

]

#3: ObjectId: 2.5.29.14 Criticality=false

SubjectKeyIdentifier [

KeyIdentifier [

0000: 6A 38 5B 26 8D DE 8B 5A F2 4F 7A 54 83 19 18 E3 j8[&...Z.OzT....

0010: 08 35 A6 BA .5..

]

]

Trust this certificate? [no]: yes

Certificate was added to keystore