Свой Certificate Authority — в OpenSSL

Свой Certificate Authority — в OpenSSL

Зачем это нужно?
Представим, у нас есть два сервера, работают они себе, и переодически они хотят, что-то друг у друга спросить по протоколу HTTP/HTTPS
Протокол HTTP не безопасен и логично использовать протокол HTTPS для общения меду серверами.
Для организации такого общения нам нужно 2 SSL сертификата.
Если сервера пренадлежат одной организации, то может быть проще и безопасней подписывать сертификаты самостоятельно, а не покупать

Создаем наш CA

Первая команда создаёт корневой ключ
openssl genrsa -out rootCA.key 2048

Для меня ключ 2048 bit достаточен, если вам хочется, вы можете использовать ключ 4096 bit.
Вторая команда создаёт корневой сертификат.
openssl req -x509 -sha256 -new -key rootCA.key -days 10000 -out rootCA.crt

Отвечать на вопросы тут можно как душе угодно.
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

10000 дней срок его годности, примерно столько живет сертификат, которым google требует подписывать андроид приложения для Google
Если вы паникер, подписывайте на год или два.
Все! Теперь мы можем создавать сертификаты для наших серверов и устанавливать корневой сертификат на наши клиентские машины.
Создаем сертификат подписаный нашим СА

Генерируем ключ.
openssl genrsa -out server101.mycloud.key 2048 -sha256

Создаем запрос на сертификат.
openssl req -new -key server101.mycloud.key -out server101.mycloud.csr -sha256

Тут важно указать имя сервера: домен или IP (например домен server101.mycloud)
Common Name (eg, YOUR name) []: server101.mycloud
и подписать запрос на сертификат нашим корневым сертификатом.
openssl x509 -req -sha256 -in server101.mycloud.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server101.mycloud.crt -days 5000

Теперь на клиенты нужно установить корневой сертификат rootCA.crt
rootCA.crt — можно давать друзьям, устанавливать, копировать не сервера, выкладывать в публичный доступ, rootCA.key — следует держать в тайне

Информация взята с https://habr.com/post/192446/

Ссылки по теме

Как выпустить самоподписанный SSL сертификат и заставить ваш браузер доверять ему