拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 数字证书:如何将.cer文件导入到信任库文件

数字证书:如何将.cer文件导入到信任库文件

白鹭 - 2021-11-24 607 0 0

1.概述

每当应用程序需要通过网络与客户端进行通信时,通常首选SSL协议。 SSL与数据加密一起,使诸如浏览器之类的应用程序必须在握手期间交换非对称密钥以建立安全连接。

通常,应用程序共享X.509证书格式的非对称密钥。因此,在SSL握手之前,客户端必须将此类证书导入其信任库文件中。

在本文中,我们将讨论一些可用于将.cer格式的证书导入到客户端的信任库中的工具。

2. keytool命令

JDK发行版提供了一个keytool实用程序,我们可以使用它来管理Java密钥库(JKS)。此命令的最重要目的是生成用于测试客户端和服务器之间的SSL通信的自签名X.509证书。

我们还可以将自签名或CA签名的证书导入JKS文件并将其用作信任库

keytool -importcert -alias trustme -file baeldung.cer -keystore cacerts



 Enter keystore password:



 Trust this certificate? [no]: yes

 Certificate was added to keystore

在这里,我们使用keytool命令导入了一个自签名的baeldung.cer我们可以将此证书导入任何Java密钥库。例如,此处显示的是cacerts密钥库中添加证书。

如果现在在密钥库中列出证书,我们将看到一个别名trustme

keytool -list -keystore cacerts



 trustme, Oct 31, 2020, trustedCertEntry,

 Certificate fingerprint (SHA1): 04:40:6C:B0:06:65:EE:80:9A:90:A5:E9:DA:19:05:4A:AA:F2:CF:A4

3. openssl命令

到目前为止,我们仅讨论了将证书导入到JKS文件中的问题。此类密钥库只能与Java应用程序一起使用。如果我们必须用其他语言实现SSL库或在多种语言平台上使用相同的证书,则更有可能使用PKCS12密钥库

要将证书导入到PKCS12密钥库中,我们还可以使用[openssl](https://www.openssl.org/)

openssl pkcs12 -export -in baeldung.cer -inkey baeldung.key -out baeldung.keystore -name trustme

此命令将导入名为证书baeldung.cer到密钥库baeldung.keystore用别名trustme.

我们可以在密钥库中看到导入的证书:

openssl pkcs12 -info -in baeldung.keystore

 Enter Import Password:

 MAC: sha1, Iteration 2048

 MAC length: 20, salt length: 8

 PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048

 Certificate bag

 Bag Attributes

 friendlyName: trustme

 localKeyID: F4 36 4E 19 E4 E4 E7 65 74 56 FB 50 40 02 68 8B EC F0 4D B3

 subject=C = IN, ST = DE, L = DC, O = BA, OU = AU, CN = baeldung.com



 issuer=C = IN, ST = DE, L = DC, O = BA, OU = AU, CN = baeldung.com



 -----BEGIN CERTIFICATE-----

 MIIFkTCCA3mgAwIBAgIUL/OjGExnppeZkiNNh0i2+TPHaCQwDQYJKoZIhvcNAQEL

 BQAwWDELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAkRFMQswCQYDVQQHDAJEQzELMAkG

 A1UECgwCQkExCzAJBgNVBAsMAkFVMRUwEwYDVQQDDAxiYWVsZHVuZy5jb20wHhcN

 MjAxMTAzMTIwMjI5WhcNMjExMTAzMTIwMjI5WjBYMQswCQYDVQQGEwJJTjELMAkG

 A1UECAwCREUxCzAJBgNVBAcMAkRDMQswCQYDVQQKDAJCQTELMAkGA1UECwwCQVUx

 FTATBgNVBAMMDGJhZWxkdW5nLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC

 AgoCggIBAK/XF/xmqQRJlTx2Vtq70x1KFwkHJEcZOyFbQP7O9RgicvMTAnbZtKpS

 BSVjwroklIr4OVK4wmwdaTnlIm22CsFrbn+iBVL00tVs+sBYEcgO5nphVWGFbvHl

 Q3PO4vTedSyH1qIyYrrhAn8wYvzdmr2g6tRwBX8K5H948Zb32Xbp5r9aR5M2i8Qz

 fc0QasJUM5b71TNt8Qcsru3pFKj5hUMBTNrGCQrr6vrADTcG0YHuVSMeJId7f67h

 l0vEY0BmRPnWNwGe+Sg/jqOWH9WWvkk/umkEQNWCQZaXZNZZ8jl5WMKFnmA7sPQ+

 UjZPabNOTxhz6fJv5nJu7aMS/6tUWO0SdQ+ctO3HgR42wtBPoEOOuFMP6OqHI4hf

 CXFTYg6aLwxFJP7LngfRvETgzVlsb9L/m++JBeoWRqpWaQUEgxDYJGFGA5dwQJaf

 f24d042i44X0WqBBoWLjSQd/JFVH5MF17waiYpxFBOgpz3XEM/1j+juJPVut2k96

 3ecgR54iKILbibizPUojn7t3AFT1Ug8exdefHdf+QsL8/L5+8/xOYkp/pnglQJJl

 W0Lq4Sh9LWiux9XVdY6n2UYf/crgLSHatVkPa26cysdXhiiEPn4yYr2AdYVf0Xr5

 W5PULufdi0HW2Eja/TfeXoBQtkdidqP8SMW+DwqafX80s37bZZBvAgMBAAGjUzBR

 MB0GA1UdDgQWBBQPHIpCFhAy3kGAbzHpXMjXCMVQRzAfBgNVHSMEGDAWgBQPHIpC

 FhAy3kGAbzHpXMjXCMVQRzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUA

 A4ICAQBzOK52I7lDX+7CHy6cQ8PnLZjAD4S5qC1P9dMy50E9N6Tmw2TiPbWl9CnU

 7a/kVO6xDJDmNMnqRbHmlZclJaTFv6naXSX27PdIWjhwAfLjNa+FO9JNwMgiP25I

 ISVjyrA3HwbhFnMs5FyBW9hbxfQ+X2Q2ooa+J3TKU7FImuDRKF3Sdb63+/j0go8S

 5/TsoYpQxg86xbWf6IYGYwegd2SPSWUZ0HQSobZ7fRA7Y0EyPKgyqsBbmDtJ+X1g

 P8Kep4N1oocc7ZkkX4pNfXTgXib9fUkKMAfRJz8w62z8I1OM61bciW7V2VSp/Y5p

 iTihyuwO0aHG+YTnsr3qFrSFQLQUjCeBvx+euQelsGm8W9xM9YfASXiaEwCmb9PO

 i/umD70J1e0HFDay9FW6mMoCCEBTZIF9ARqzhHgg9fi9iH2ctrsxadFAlOTFp5+/

 p+nxrencfvc4CP6aHoqkE45HpMBoNDAxRMVd/FRzIG2as0q5At873MNFXP6WxmQV

 4KGIhteNLyrXk82yHdHfm1EENTI7OEst/Fc8O3fFy9wn0OvoHIuCv1FVCq4Gnjmq

 vNnBnGldrYruCNvj5KT6U14FFdK/5Zng0nSky4oMTs49zt392bdYi31SHWeATdw/

 PscFRdig2stoI8ku6R+K7XvmseGzPmUW4K2IWU0zdRP2a4YyvA==

 -----END CERTIFICATE-----

 PKCS7 Data

 Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048

 Bag Attributes

 friendlyName: trustme

 localKeyID: F4 36 4E 19 E4 E4 E7 65 74 56 FB 50 40 02 68 8B EC F0 4D B3

 Key Attributes: <No Attributes>

因此,我们已成功将证书导入到PKCS12密钥库中。因此,此密钥库现在可以用作SSL客户端应用程序(如HTTP客户端库)中的信任库文件。同样,此文件也可以用作SSL服务器应用程序(例如Tomcat)中的密钥库。

4。结论

在本文中,我们讨论了用于管理数字证书的两种流行的SSL工具-OpenSSL和Java Keytool。我们进一步使用keytoolopenssl命令将.cer格式的证书分别导入到JKS和PKCS12文件中

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *