#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
.