Создание самоподписного сертификата и добавление для сервиса YouGile
Создание сертификата в Windows Server
Создание сертификата
New-SelfSignedCertificate -DnsName "*.yourdomain.com", "yourdomain.com" -CertStoreLocation "Cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(5)
- Замените
yourdomain.local
на имя вашего домена AddYears(5)
- количество лет, на которые выпускается сертификат
Экспорт сертификата
- Откройте mmc.exe, Добавьте оснтастку "Certificates" в snap-in for Local Computer.
- Найдите ваш сертификат в
Personal -> Certificates
. - Экспортируйте сертифика (включая приватный ключ) в .PFX формат
Установка сертификата в контроллер домена
- Импорт сертификата в mmc.exe:
- AdОткройте mmc.exe, Добавьте оснтастку "Certificates" в snap-in for Local Computer.
- Импортируйте ваш .PFX из предыдущего шага в
Trusted Root Certification Authorities -> Certificates
Импорт сертификата в хранилище доверенных корневых центров сертификации на всех клиентах через GPO (при необходимости)
- Экспортируйте публичную часть сертификата (формат .CER base64).
- Импортируйте ее в хранилище доверенных корневых центров сертификации на всех клиентах через GPO:
- В Group Policy Management Console (GPMC), создать новую политику или отредактировать существующую.
- Перейдите
Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Public Key Policies -> Trusted Root Certification Authorities
. - Импортируйте публичный сертификат.
Перезапуск NTDS и тест соединения
- Перезапуск NTDS
restart-Service NTDS -force
- Тест соединения
Test-NetConnection -ComputerName yourdomain.local -Port 636
- Замените
yourdomain.local
на имя вашего домена
Настройка YouGile для работы с самоподписным сертификатом
- Экспорт сертификата из Trusted Root Certification Authorities
- AdОткройте mmc.exe, Добавьте оснтастку "Certificates" в snap-in for Local Computer.
- Импортируйте ваш .PFX из предыдущего шага в
Trusted Root Certification Authorities -> Certificates
-
Настройте YouGile на работу как сервис (описано в разделе Установка)
-
добавьте строку с путем к сертификату в файл сервиса.
<service>
<id>YouGile</id>
<name>YouGile Service (powered by WinSW)</name>
<description>This service runs YouGile continuous integration system</description>
<env name="NODE_EXTRA_CA_CERTS" value="C:\yougile\path-to-your-cert" />
<executable>%BASE%\server.exe</executable>
<logpath>%BASE%\logs</logpath>
</service>
Создание самоподписного сертификата в Linux
Создание сертификата
- Создайте закрытый ключ и сертификат
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = RU
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = Moscow
localityName = Locality Name (eg, city)
localityName_default = Moscow
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default = IT
commonName = Common Name (e.g. server FQDN or YOUR name)
commonName_default = example.com
commonName_max = 64
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = example.com
- Создание корневого сертификата
openssl genrsa -out rootCA.key 4096
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
- Создание промежуточного сертификата
openssl genrsa -out intermediateCA.key 4096
openssl req -new -key intermediateCA.key -out intermediateCA.csr
openssl x509 -req -in intermediateCA.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out intermediateCA.pem -days 500 -sha256 -extfile <(printf "basicConstraints=CA:TRUE,pathlen:0")
- Создание сертификата сервера
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr -config openssl-san.cnf
openssl x509 -req -in server.csr -CA intermediateCA.pem -CAkey intermediateCA.key -CAcreateserial -out server.crt -days 365 -sha256 -extensions req_ext -extfile openssl-san.cnf
- Создание цепочки сертификатов
cat server.crt intermediate.crt rootCA.crt > chain.pem
Добавление сертификата в доверенные
- RHEL
cp rootCA.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust
- Ubuntu
sudo cp way/to/rootCA.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates
Добавление пользовательского CA-сертификата для сервиса YouGile
В случае использования самоподписанных или пользовательских сертификатов, для корректной работы сервиса YouGile может потребоваться передать переменную окружения NODE_EXTRA_CA_CERTS=путь_к_файлу_сертификата
. Эта переменная указывает Node.js путь к дополнительному сертификату удостоверяющего центра (CA), которому необходимо доверять.
Поиск файла сервиса
Файл сервиса YouGile, как правило, называется yougile.service
и находится в каталоге /etc/systemd/system/
Путь к файлу может отличаться в зависимости от конфигурации вашей системы. Если вы не уверены, где находится файл, выполните команду:
systemctl status yougile.service
Изменение файла yougile.service
Откройте файл сервиса в любом редакторе от имени пользователя root
или с использованием sudo
. Например:
sudo nano /etc/systemd/system/yougile.service
Добавьте строку с переменной Environment=NODE_EXTRA_CA_CERTS=путь_к_файлу_сертификата
, указав полный путь к вашему сертификату (в формате PEM). Пример содержимого файла:
[Unit]
Description=yougile
[Service]
WorkingDirectory=/opt/yougile
ExecStart=/opt/yougile/server
Environment=NODE_OPTIONS="--max_old_space_size=5000"
Environment=NODE_EXTRA_CA_CERTS=путь_к_файлу_сертификата
LimitNOFILE=500000
LimitNPROC=500000
[Install]
WantedBy=multi-user.target
Применение изменений и перезапуск сервиса
После редактирования необходимо обновить настройки systemd и перезапустить сервис. Выполните следующие команды:
sudo systemctl daemon-reload
sudo systemctl enable yougile.service
sudo systemctl restart yougile.service
Убедитесь, что сервис запущен и работает корректно:
systemctl status yougile.service
Теперь сервис YouGile будет использовать указанный CA-сертификат при установлении HTTPS-соединений.