Назад | Перейти на главную страницу

Сервер Thoughtworks Go и SSL

Как изменить используемый сервер SSL-сертификатов Go? У нас есть несоответствие между доменом в сертификате и доменом, который мы фактически используем для доступа к серверу. Таким образом, мы всегда получаем проблемы с сертификатом даже после добавления сертификата в местный магазин.

Предлагаемый способ решения этой проблемы описан здесь: http://sachinsudheendra.github.io/2014/03/08/using-go-cd-with-custom-certificates.html

Еще не пробовал, но скоро буду, так что опубликую здесь результаты, когда попробую.

Изменить: я пробовал это сегодня и могу подтвердить, что он работает нормально.

Протестировано с использованием 64-разрядной версии OpenSSL http://slproweb.com/download/Win64OpenSSL-1_0_0l.exe

Действия по воспроизведению (в Windows Server 2012 R2 с использованием GO версии 13.4):

(Предполагается, что вы уже создали запись DNS для имени, которое хотите использовать, например, mycdserver.mycompany.com)

(Эти шаги можно выполнить на любой машине с установленным OpenSSL)

  1. Получите действительный сертификат X509 SSL либо с помощью внутреннего центра сертификации, либо от общедоступного центра сертификации с CN, соответствующим записи DNS, например mycdserver.mycompany.com
  2. Импортируйте сертификат в хранилище сертификатов Windows.
  3. Используя оснастку MMC для сертификатов, экспортируйте сертификат как файл .pfx, указав пароль для serverKeystorepa55w0rd.
  4. Экспортируйте ключевой файл из исходного файла .pfx, используя следующую команду:

    openssl pkcs12 -в mycertificatepath.pfx -nocerts -out mycertificatepath.key

  5. Экспортируйте файл crt из исходного файла .pfx, используя следующую команду:

    openssl.exe pkcs12 -в mycertificatepath.pfx -clcerts -nokeys -out mycertificatepath.crt

  6. Преобразуйте ключевой файл и файл crt в файл pkcs12, используя следующую команду:

    openssl pkcs12 -inkey mycertificatepath.key -in mycertificatepath.crt -export -out mycertificatepath.pkcs12

(Эти действия следует выполнять на сервере)

  1. На сервере откройте командную строку от имени администратора.
  2. Перейдите в каталог, в котором установлены двоичные файлы среды выполнения Java. Путь по умолчанию - C: \ Program Files (x86) \ Go Server \ jre \ bin
  3. Импортируйте файл PKCS12, созданный на предыдущих шагах, в файл хранилища ключей, используя исполняемый файл KeyTool в каталоге bin, используя следующую команду:

    keytool -importkeystore -srckeystore mycertificatepath.pkcs12 -srcstoretype PKCS12 -destkeystore keystore -srcalias 1 -destalias cruise

  4. Остановите службу Go Server, используя следующую команду:

    net stop "Go Server"

  5. Запустите службу Go Server, используя следующую команду:

    net start "Go Server"

  6. Убедитесь, что служба запущена правильно, и попробуйте перейти по URL-адресу, соответствующему вашему сертификату, через https, например. mycdserver.mycompany.com

  7. Возможно, вам придется сначала закрыть браузер, однако после повторного открытия вы должны увидеть свой сервер GO через HTTPS с действующим сертификатом (при условии, что ваш клиент настроен так, чтобы доверять центру сертификации, выдавшему сертификат!)

Если возникнут какие-либо проблемы, служба GO Server будет остановлена, и подробности будут записаны в файл "C: \ Program Files (x86) \ Go Server \ go-server-wrapper.log"

Надеюсь, это поможет.