Как создать SSL-сертификат с закрытым ключом? - PullRequest
1 голос
/ 30 июня 2011

Когда я пытаюсь настроить транзакции WS-AT в Windows, система заявляет, что не может использовать определенный сертификат SSL, поскольку у него нет закрытого ключа. Я попробовал самоподписанный сертификат, предоставленный StartSSL - не повезло.

Думаю, благодаря расширениям можно создать сертификат с прикрепленным закрытым ключом, вопрос в том, есть ли такой инструмент? Или есть программное обеспечение, которое может экспортировать его из хранилища ключей Glassfish?

1 Ответ

1 голос
/ 30 июня 2011

Из того, что я вижу в скринкасте, который вы отметили в своих комментариях, tiny.cer - это сертификат сервера, который вы импортируете на стороне Windows. Вам не нужен закрытый ключ этого сертификата на стороне Windows.

mrbean.cer - это сертификат, который вы импортируете в jks на стороне сервера. Вам также не нужен закрытый ключ этого сертификата на стороне сервера.

Какая система жалуется на отсутствие закрытого ключа? Если это сторона Windows, то посмотрите информацию о сертификате в оснастке MMC Certificates. В 25:26 в скринкасте вы можете увидеть информацию о сертификате tini.east.sun.com. Обратите внимание, что с сертификатом не связан закрытый ключ. Это хорошо.

То, что скринкаст не показывает (или я не видел, как оно сканирует его быстро), это детали сертификата mrbean на стороне Windows. В системе Windows вам нужен закрытый ключ, если вы используете сертификат mrbean для подключения с помощью SSL к серверу. Для этого сертификата в вашей системе Windows на вкладке сведений о сертификате должен отображаться небольшой значок ключа и текст «У вас есть закрытый ключ, соответствующий этому сертификату». (Закрытый ключ на самом деле не является частью сертификата - он хранится отдельно.)

Вам не нужно экспортировать этот закрытый ключ или скопировать его на сервер, фактически вы НЕ хотите копировать закрытый ключ на сервер. Вы хотите, чтобы закрытый ключ сертификата mrbean хранился в системе Windows в безопасности.

Однако, если вы используете его для подключения в качестве сертификата клиента для подключения SSL, в оснастке MMC должен отображаться закрытый ключ и, кроме того, учетная запись Windows, которая выполняет подключение SSL ДОЛЖЕН иметь доступ к закрытому ключу. Когда вы импортируете клиентский сертификат (mrbean) на стороне Windows, учетная запись Windows, в которую вы вошли, будет иметь доступ к закрытому ключу, но если код, выполняющий подключение, выполняется под другой учетной записью Windows, он этого не делает.

В оснастке MMC щелкните правой кнопкой мыши сертификат (mrbean) и выберите «Все задачи -> Управление личными ключами». Оттуда вы можете предоставить доступ на чтение к учетной записи Windows, которая выполняет подключение SSL. (Будьте осторожны - тот, кому вы дадите доступ на чтение к закрытому ключу, может использовать сертификат для подключения через SSL с использованием этого сертификата.)

Так что я не уверен, что это проблема, но если сторона Windows жалуется на отсутствие закрытого ключа и вам нужен клиентский сертификат для соединения SSL, то проверьте, что (а) у вас есть личный ключ, связанный с сертификатом, и (b) учетная запись Windows, которая должна использовать сертификат для подключения через SSL, имеет доступ к закрытому ключу. Вы можете проверить обе вещи в оснастке MMC в системе Windows.

Не копируйте закрытый ключ (клиент или сервер) в любом направлении.

...