-
Notifications
You must be signed in to change notification settings - Fork 0
Создание самоподписного сертификата
- openssl
Для начала необходимо выпустить корневой сертификат, которым будут подписываться остальные сертификаты. Это делается для того, чтобы можно было распространить среди команды один сертификат один раз и все последующие сертификаты считались доверенными.
Сначала создается корневой ключ, затем корневой сертификат.
openssl genrsa -out localCA.key 2048
openssl req -x509 -new -nodes -key localCA.key -sha256 -days 365 -out localCA.crt
При выполнении последней команды будут заданы вопросы:
-----
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Chelyabinsk
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nullpany
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
Итогом будут два файла localCA.key
и localCA.crt
.
Создаем приватный ключ и запрос на сертификат:
openssl genrsa -out nullpany.localhost.key 2048
openssl req -new -key nullpany.localhost.key -out nullpany.localhost.csr
Теперь необходимо подписать запрос на сертификат корневым сертификатом:
openssl x509 -req -in nullpany.localhost.csr -CA localCA.crt -CAkey localCA.key -CAcreateserial \
-out nullpany.localhost.crt -days 365 -sha256 -extfile nullpany.localhost.ext
Для удобвства использует ext файл, в котором задана освновная конфигурация выпускаемых сертификатов. Так же в нем указывается alt names, которые позволяют настроить домены для каждого проекта.
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = nullpany.localhost
DNS.2 = *.nullpany.localhost
DNS.3 = *.project-a.nullpany.localhost
DNS.4 = *.project-b.nullpany.localhost
DNS.5 = *.project-c.nullpany.localhost
В результате будет получена пара ключ и сертификат: nullpany.localhost.key
и nullpany.localhost.crt
.
Теперь членам команды можно разослать корневой сертификат localCA.crt
, которым останется только добавить его в корневое хранилище.
Процесс добавления сертификата в корневое хранилище зависит от используемой ОС и браузера.
Основые инструкции по установке сертификатов можно найти по ссылке