Как мне сгенерировать сертификат X.509 из ключа, сгенерированного openssl - PullRequest
0 голосов
/ 26 июня 2018

У меня есть веб-сервер, работающий на экземпляре ec2, который внутренне вызывает REST-сервер, созданный с использованием Spring Boot.Теперь я пытаюсь запустить этот REST-сервер по протоколу SSL.Вот что я сделал до сих пор:

1) С помощью этой команды создал CSR и файл ключа

openssl req -newkey rsa:2048 -nodes -keyout mydomain.key -out mydomain.csr

2) Copied 'csr' to get SSL certificate from GoDaddy.

3) Успешноустановил сертификат под Nginx на моем экземпляре ec2.

4) Когда я захожу на домашнюю страницу под https, он работает.Я больше не получаю сообщение «Незащищенный» из браузера.

5) Ошибка входа в систему, поскольку он выполняет вызов REST, но сервер REST не работает по протоколу SSL, поэтому я пытаюсь запустить его по протоколу SSL.

6) Запустил следующие команды:

keytool -import -alias mydomain -keystore tomcat.keystore -trustcacerts -file mydomain.com.chained.crt
keytool -import -alias mydomain-key -keystore tomcat.keystore -trustcacerts -file mydomain.key

Предыдущая команда выдает мне сообщение об ошибке: «ошибка keytool: java.lang.Exception: ввод не сертификата X.509»

Но это был тот, который был создан на шаге 1 выше, и тот же файл работает под Nginx.Чего мне не хватает (кроме того факта, что я очень мало знаю о настройке SSL!)?Мне нужна вторая команда, чтобы указать значение 'server.ssl.keyAlias' в application.properties, я считаю.

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Спасибо @ Dave_thompson_085.Следующие 2 команды сделали трюк!

openssl pkcs12 -export -in mydomain.com.chained.crt -inkey mydomain.key -out keystore.p12 -name my-alias -caname root

keytool -importkeystore -deststorepass mypassword -destkeypass mypassword -destkeystore keystore.jks -srckeystore keystore.p12 -srcstoretype PKCS12 -srcstorepass mypassword -alias my-alias

и затем в application.properties я указал следующие свойства:

server.port=8443
server.ssl.enabled=true
security.require-ssl=true
server.ssl.key-store=/etc/nginx/ssl/keystore.jks
server.ssl.key-store-password=mypassword
server.ssl.keyStoreType=JKS
server.ssl.keyAlias=my-alias
0 голосов
/ 26 июня 2018

Не совсем ответ, но переполненный комментарий.

Вам не нужно «генерировать» сертификат X.509;Вы уже получили это от GoDaddy.Если (и только если) к серверу SpringBoot обращаются с теми же именами, что и (внешний) nginx - что мне неясно - вам необходимо преобразовать пару закрытого ключа И сертификат CHAIN ​​из формата PEM в формат, который использует Java.См .:
Как импортировать существующий сертификат x509 и закрытый ключ в хранилище ключей Java для использования в SSL?
Как настроить SSL-сертификат letsencrypt и использовать его в SpringЗагрузочное приложение?
Как использовать файл .key и .crt в java, сгенерированный openssl?
Импорт пары секретный ключ / открытый сертификат в JavaKeyStore
возможно Импорт ключа и SSL-сертификата в хранилище ключей Java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...