0utsidethebox

Кросс-сертификация через свой Root CA для ограниченного списка доменов

Aug 7th, 2026
328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.18 KB | None | 0 0
  1. ## Извлеките публичный ключ
  2. openssl x509 -in russian_trusted_root_ca.cer -pubkey -noout > russian_pubkey.pem
  3.  
  4. ## Создайте свой локальный корневой CA (MyLocalRoot)
  5. # 1. Генерация ключа вашего Root CA
  6. openssl genrsa -out my_local_root.key 4096
  7.  
  8. # 2. Создание вашего корневого сертификата
  9. openssl req -x509 -new -nodes -key my_local_root.key -sha256 -days 3650 \
  10.   -out my_local_root.crt \
  11.   -subj "/CN=My Personal Local Security Root CA"
  12.  
  13. ## Создайте файл конфигурации Name Constraints (nc.cnf)
  14. [ v3_constrained ]
  15. basicConstraints = critical, CA:true
  16. keyUsage = critical, keyCertSign, cRLSign
  17. subjectKeyIdentifier = hash
  18. authorityKeyIdentifier = keyid:always,issuer
  19. nameConstraints = critical, \
  20.   permitted;DNS:psbank.ru, \
  21.   permitted;DNS:sber.ru, \
  22.   permitted;DNS:sberbank.ru, \
  23.   permitted;DNS:tbank.ru, \
  24.   permitted;DNS:alfabank.ru, \
  25.   permitted;DNS:vtb.ru
  26.  
  27. ## Выпустите ограниченный кросс-сертификат
  28. # 1. Создание временного CSR
  29. openssl req -new -newkey rsa:2048 -nodes -keyout dummy.key -out dummy.csr \
  30.   -subj "/C=RU/O=The Ministry of Digital Development and Communications/CN=Russian Trusted Root CA"
  31.  
  32. # 2. Подпись с подменой публичного ключа и наложением Name Constraints
  33. openssl x509 -req -in dummy.csr \
  34.   -CA my_local_root.crt \
  35.   -CAkey my_local_root.key \
  36.   -CAcreateserial \
  37.   -out russian_root_constrained.crt \
  38.   -days 3650 -sha256 \
  39.   -extfile nc.cnf -extensions v3_constrained \
  40.   -force_pubkey russian_pubkey.pem
  41.  
  42. # 3. Удаление временных файлов
  43. rm dummy.key dummy.csr nc.cnf my_local_root.srl
  44.  
  45. ## Установите сертификаты в систему
  46. # - my_local_root.crt — установите в Доверенные корневые центры сертификации (Trusted Root Certification Authorities) ОС и/или Firefox.
  47. # - russian_root_constrained.crt — установите в Промежуточные центры сертификации (Intermediate Certification Authorities)
Advertisement
Add Comment
Please, Sign In to add comment