Как импортировать файл сертификата SSL .pem в файл JRE cacerts на Mac? - PullRequest
0 голосов
/ 29 ноября 2018

Я пытался использовать keytool -importcert -alias (my cert alias) -file (cert file path.pem) -keystore (jre keystore path) и получаю сообщение об ошибке, в котором говорится, что мой файл .pem не является сертификатом x509.Я думаю, это потому, что мой .pem файл не отформатирован должным образом или потому что он содержит как закрытый ключ, так и сертификат.Какие-либо предложения?Мой файл .pem выглядит следующим образом:

Bag Attributes
    Microsoft Local Key set: <No Values>
    localKeyID: 
    friendlyName: 
    Microsoft CSP Name: 
    X509v3 Key Usage: 10 
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG...
-----END PRIVATE KEY-----
Bag Attributes
   ...
-----BEGIN CERTIFICATE-----
MIIHQzCCBiugAwIBAgIQDEtIx...
-----END CERTIFICATE-----

Ответы [ 3 ]

0 голосов
/ 03 декабря 2018

К сожалению, мне не удалось импортировать сертификат в мой файл cacerts, однако я смог настроить свой CloseableHttpClient так, чтобы он использовал URL-адреса HTTPS, которые не имеют «действительных» сертификатов.Я просто использовал следующий код при реализации моего клиента:

SSLContext sslContext = new SSLContextBuilder()
    .loadTrustMaterial(null, ((certificate, authType) -> true)).build();
CloseableHttpClient client = HttpClients.custom().setSSLContext(sslContext)
    .setSSLHostnameVerifier(new NoopHostnameVerifier()).build();

Я знаю, что это неправильный способ справиться с ситуацией, но я не беспокоюсь о проверке сертификата с сервера, с которым я общаюсьв этом конкретном случае.

0 голосов
/ 04 декабря 2018

Я наконец смог импортировать сертификат в мой файл JRE cacerts.Сначала мне нужно было создать новый файл .pem только с сертификатом:

-----BEGIN CERTIFICATE-----
MIIHQzCCBiugAwIBAgIQDEtIx...
-----END CERTIFICATE-----

Затем мне пришлось скопировать файл cacerts в новое место, а затем запустить следующий код для его импорта:

keytool -import -v -trustcacerts -alias serveralias -file /Applications/certificate.pem -keystore /cacerts

После импорта сертификата я скопировал новый файл cacerts обратно в папку безопасности JRE, и успех!

0 голосов
/ 29 ноября 2018

Посмотрите на эту страницу в формате файла PEM Поскольку ваш файл содержит ссылки на Microsoft, я рекомендую убедиться, что в файле используются окончания строк Unix (\n) вместо окончаний строк Windows (* 1004)*)

...