@CryptoGuy мав тут досить гарну відповідь, але я хотів розширити її.
Перефразовуючи:
Ви можете обмежити сторонній КА довіреними сертифікатами (від цього КА), виданими списком імен, який бажаєте. Навіть якщо сторонні CA не мають розширення з обмеженнями імен, можливо застосувати їх, використовуючи власний внутрішній сервер CA через перехресну сертифікацію. Хитрість полягає в тому, що ви підписуєте сторонній сертифікат, використовуючи свій внутрішній сертифікат.
листя SSL cert -> перехресний сертифікат -> ваш сертифікат CA -> ваш внутрішній кореневий сертифікат.
Ось як ви це зробите (використовуючи командний рядок OpenSSL CA)
Створіть простий СА
openssl req -new -x509 -days 3650 -newkey rsa:2048 -sha256 -out root-ca.crt -keyout root-ca.key -subj "/CN=My Root CA"
Ви можете пропустити створення проміжного СА
Створіть проміжний запит CA із обмеженнями на ім'я.
openssl req -new -days 3650 -newkey rsa:2048 -out domain-ca.req -sha256 -keyout domain-ca.key -config ossl_domain_com.cfg
З цим у ossl_domain_com.cfg
файлі:
[ req ]
prompt=no
distinguished_name=req_distinguished_name
req_extensions=domain_ca
[ req_distinguished_name ]
CN=somedomain.com trust CA
[ domain_ca ]
basicConstraints=critical,CA:true,pathlen:1
nameConstraints=critical,permitted;DNS:.somedomain.com
Потім підпишіть цей проміжний домен CA з вашим CA.
openssl x509 -req -in domain-ca.req -CA root-ca.crt -CAkey root-ca.key -sha256 -set_serial 1 -out domain-ca.crt -extensions domain_ca -extfile ossl_domain_com.cfg
Якщо ви пропустили створення проміжного, використовуйте свій кореневий CA для підписання
Тепер перепідпишіть сертифікат оригіналу домену під вашими повноваженнями, використовуючи їх сертифікат. Тут можна додати розширення CA.
openssl x509 -in third_party_ca.crt -CA domain-ca.crt -CAkey domain-ca.key -set_serial 47 -sha256 -extensions domain_ca -extfile ossl_domain_com.cfg -out domain-cross-ca.crt
Вам може знадобитися використовувати -x509-to-req
аргумент для створення запиту, який ви підпишете точно так само, як проміжний вище.
Тепер додайте кореневий CA, проміжний CA та домен-cross-ca до бази даних довіри вашого браузера.