web-dev-qa-db-ja.com

WindowsにOpenSSLスタイルのSSL証明書をインストールする

コンテキスト:FTPサーバーに接続する必要のあるアプリケーションを作成しています。FTPサーバーはFTPSである可能性があります(つまり、TLSで暗号化されている可能性があります)。テストするために、FileZillaサーバーをインストールし、(それを使用して)証明書ファイルを生成しました( 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
Vladimirs Kacs

これは、PuTTYで生成されたキーとまったく同じように見えます。base64は65文字の行に分割されています

しかし、それが類似点の終わりです。これは、元々はPEM電子メールセキュリティ形式に由来する、特に一般的なASCIIアーマー形式です(したがって、このようなものでよく見られる.pemファイル拡張子)。これは「PuTTYスタイル」のキーではありません。より適切な名前は「OpenSSLスタイルのキー」です。

(PuTTYはSSHクライアントです。SSL/ TLSも使用せず、X.509( "SSL")証明書もサポートしていません。共通しているのは秘密鍵だけです。OpenSSHが同じものを使用することがあります。 OpenSSLと同様にRSAキー形式(PKCS#1)であるため、PuTTYgenの「ExportOpenSSHキー」からも取得できます。実際、PuTTYのown ".ppk"形式はまったく異なります。)

つまり、PEMでエンコードされたX.509証明書とPEMでエンコードされたPKCS#1RSA秘密鍵があります。証明書をインポートする場合just証明書をファイルに入れて、something.crtまたはsomething.cerという名前を付けることができます–WindowsはPEMエンコーディングを自動的に認識します。

ただし、証明書秘密鍵付きをWindowsにインポートする場合、受け入れられるのはPKCS#12形式(拡張子が.p12または.pfxのファイル)のみです。 2つの形式を変換するには、opensslプログラムを使用できます。

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

(PKCS#12ファイルはパスワードで暗号化されます。パスワードにASCII以外の文字を使用しないでください。OpenSSLforWindows ここにあります 。)

その前に、newキーペアを生成し、貼り付けたばかりのキーペアを使用してインターネット全体に表示しないことを強くお勧めします。

1
user1686