IOS 14 — Самозаверяющий сертификат — не заслуживает доверия

#ios #openssl #self-signed-certificate

#iOS #openssl #самозаверяющий сертификат

Вопрос:

Я создаю самозаверяющий сертификат, используя это

 openssl req 
    -newkey rsa:2048 
    -x509 
    -nodes 
    -keyout myKey.key 
    -new 
    -out myCert.crt 
    -subj /CN=my.domaine.any 
    -config ./myConfig.cnf 
    -reqexts SAN 
    -extensions SAN 
    -sha256 
    -days 365
  

содержимое MyConfig является

 [ req ]
default_bits        = 2048
distinguished_name  = req_distinguished_name
req_extensions      = SAN
extensions          = SAN
[ req_distinguished_name ]
countryName         = myCountry
stateOrProvinceName = myProvince
localityName        = myCity
organizationName    = myOrgan
[SAN]
subjectAltName      = DNS:my.domaine.any
extendedKeyUsage    = serverAuth
  

Я проверяю требования к сертификату IOS, которые я нахожу здесьhttps://support.apple.com/en-us/HT210176 (Надеюсь, у меня все есть).

Я могу установить сертификат в Настройки> Общие> Профиль.

Но я не могу доверять своему сертификату, потому что, когда я перехожу в Настройки> Общие> О программе> Настройки доверия сертификата, я не вижу никакого сертификата.

Есть какие-нибудь подсказки?

Комментарии:

1. Вы можете использовать let’s encrypt, чтобы иметь бесплатные, но надежные сертификаты вместо ненадежных самозаверяющих

Ответ №1:

Я нашел то, чего не хватало в моей конфигурации.

следует добавить в [SAN] часть

 basicConstraints=CA:TRUE,pathlen:0
  

и это работает!

Ответ №2:

Убедитесь, что при отправке сертификата на свой телефон вы также не экспортируете закрытый ключ. Safari не будет доверять, и он не будет отображаться под Certificate Trust Settings .

Я использую Powershell в Windows и использовал команду Export-PFXCertificate , которая включает закрытый ключ. Вместо этого сработала команда Export-Certificate .