在 Windows 上安装 OpenSSL 样式的 SSL 证书

在 Windows 上安装 OpenSSL 样式的 SSL 证书

背景:我正在编写一个需要连接到 FTP 服务器的应用程序,该服务器可能是 FTPS(即它可能使用 TLS 加密。)为了测试它,我安装了 FileZilla Server 并(用它)生成了一个证书文件(它看起来就像一个 putty 生成的密钥:base64 分成 65 个字符的行,)但是我找不到将此证书导入 Windows 证书颁发机构的方法。

我该怎么做呢?

证书文件如下所示:

-----BEGIN RSA PRIVATE KEY-----
MIIC7QIBAAKBoQCp248qFhlBWwSLVOmVrsSSbS6vGgF3Oun9w9cW0Uwxc8KSJZAC
J4q9mpdKk+XdicNw2WLb19X/Fp3k8unCJ0QS20G5MVZ8wwNHvafke6SKzqkCr2S8
fOVhoWTnKqvUKpSx+Ib2Nd1w7/30UJpWgYsP1wlbbibeCQDAgUSMGVJCIU/iZD0u
751eXZT4ZeuIMt0KTRJCCNdy91WEGVDLoJhlAgMBAAECgaEAmsgARZGtoeiW04Ck
+kkvx17G07kW7Nc6sovrTFec3tNl0ld4Sv5NZ0mf482yAZawCf2OIFcmIjUx3Jee
e9XcKnKyCVf0P+xU6OLiQ0qIPhNmnk2SVhZKzCqgle51b3r21ERWdoUQJRNLBOVu
i863mjPFExN6ke679aZFStuHsIn3HInlqpc8hzMJs2CwrefYBqJ/MiLBxLK5o0/i
R5GIYQJRAOHcdYCF0uxY1524SAvZCqAeNputVz6U2yAaOTpeAet43acCqUVMzMpo
FLC3RfWsEd1h4icqs5ASKVi5aHkQkEJFjiVst+ggu17OdhcwszVzAlEAwIX9U53z
8JZuTBoSwiVfXv4n/61MvgXwYMh/M1C/QdytmVLv05YzwDhicsSIYqxGfVhYpnDj
pb0H9W/h0tZ0P7EegpKSqJOLOQqTZE2CxMcCUGnhksgMdGPOBk5u7H95YQzM/Saf
7U1uNQdoo7lkBpxfzfEUQ0w0g7DDeCeb01UnNDzHPWDFGOaKTQ3F5V8Tz7zxpICQ
5eoRJiV8vkmC0BBXAlEAlVxeOKzmP9S1JV1lCDIuV2geaAFu9E1vO+bQqGMQvmwS
Uk1BuolhBNO5rQhENykoVr5fqGEUe9S3g/aU4Bl4fqFO5kYIebhd3pcR2lM4DKkC
UDxDUW4PCm0EnDbfJlqGItMiImPfnVlMBTHfIcc1oaHksqS/i0mnkDs4uOZtQerz
uRSxqHFLYnoIjRu/Ju0QLxELzzeQM4oa4B5GOiHVnWoA
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIC2TCCAiKgAwIBAgIEKqGuMTANBgkqhkiG9w0BAQsFADCBkDEVMBMGA1UEAwwM
MTAuMTUyLjguMTA1MQswCQYDVQQGEwJMVjEOMAwGA1UECAwFUmlnYXMxDTALBgNV
BAcMBFJpZ2ExDTALBgNVBAoMBFRlc3QxDTALBgNVBAsMBFRlc3QxLTArBgkqhkiG
9w0BCQEWHlZsYWRpbWlycy5LYWNzQG5lLmxpbmVkYXRhLmNvbTAeFw0xOTAyMTMx
NTMwNDhaFw0yMDAyMTMxNTMwNDhaMIGQMRUwEwYDVQQDDAwxMC4xNTIuOC4xMDUx
CzAJBgNVBAYTAkxWMQ4wDAYDVQQIDAVSaWdhczENMAsGA1UEBwwEUmlnYTENMAsG
A1UECgwEVGVzdDENMAsGA1UECwwEVGVzdDEtMCsGCSqGSIb3DQEJARYeVmxhZGlt
aXJzLkthY3NAbmUubGluZWRhdGEuY29tMIG/MA0GCSqGSIb3DQEBAQUAA4GtADCB
qQKBoQCp248qFhlBWwSLVOmVrsSSbS6vGgF3Oun9w9cW0Uwxc8KSJZACJ4q9mpdK
k+XdicNw2WLb19X/Fp3k8unCJ0QS20G5MVZ8wwNHvafke6SKzqkCr2S8fOVhoWTn
KqvUKpSx+Ib2Nd1w7/30UJpWgYsP1wlbbibeCQDAgUSMGVJCIU/iZD0u751eXZT4
ZeuIMt0KTRJCCNdy91WEGVDLoJhlAgMBAAEwDQYJKoZIhvcNAQELBQADgaEAm/Gz
9oX/Qt3X8PsDpUcIG8E9CO72D3i2Hm9FJ5Wn0UKpJC5PSqZvtMNfS7xQ2B/mjNVY
RsdKD00QqK6w8jMy0SZ1/CHSe+KZXQLTc79RvJ1zep6qbXGcZaCcAjM2L9cYS4XX
+W9miQBxwnFtGARv5xXmyiT77YEnxfq8igWFwKaRK/Hw76UwMoPBrk/Ar2cq0xat
/JL0EvTX1MSzKwmFQw==
-----END CERTIFICATE-----

答案1

它看起来就像 putty 生成的密钥:base64 分成 65 个字符的行

但相似之处仅此而已。这只是一种特别常见的 ASCII 装甲格式,最初来自 PEM 电子邮件安全格式(因此您经常在此类文件上看到 .pem 文件扩展名)。它不是“PuTTY 样式”密钥;更好的名称应该是“OpenSSL 样式密钥”。

(PuTTY 是一个 SSH 客户端;它甚至不使用 SSL/TLS,也不支持 X.509(“SSL”)证书。它们唯一的共同点是私钥——碰巧的是,OpenSSH 使用与 OpenSSL 相同的 RSA 密钥格式(PKCS#1),所以这也是你从 PuTTYgen 的“导出 OpenSSH 密钥”中获得的。事实上,PuTTY 的自己的“.ppk”格式看上去完全不一样。)

因此,您拥有的是 PEM 编码的 X.509 证书和 PEM 编码的 PKCS#1 RSA 私钥。如果您想导入只是证书,您可以将其放在一个单独的文件中并命名它something.crt或者something.cer- Windows 将自动识别 PEM 编码。

但如果你想导入证书使用私钥进入 Windows,它唯一接受的是 PKCS#12 格式(扩展名为 .p12 或 .pfx 的文件)。要转换这两种格式,您可以使用以下程序openssl

openssl pkcs12 -export -in FTP.pem -inkey FTP.pem -out FTP.p12 -name "FileZilla cert"

(PKCS#12 文件将使用密码加密。密码中应避免使用非 ASCII 字母。适用于 Windows 的 OpenSSL可以在这里找到

在这样做之前,我强烈建议生成一个新的密钥对,而不是使用刚刚粘贴给整个互联网看到的密钥对。

相关内容