Я хочу настроить центр сертификации для своей локальной сети. Корневой сертификат должен быть установлен на различных устройствах (iPhone, ПК с Windows, MacBook). С помощью сертификата сервера я хочу защитить трафик между браузером и веб-сервером (nginx 1.17 на debian 10.1 как обратный прокси).
Я создал корневой сертификат с помощью следующих команд:
# key
openssl genrsa -des3 -out rootCA.key 4096
# root-certificate
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt
Затем я создал CSR для определенного сервера:
# key
openssl genrsa -out myserver.local.key 2048
# csr
openssl req -new -key myserver.local.key -out myserver.local.csr
Наконец, я создал сертификат сервера с корневым ключом:
openssl x509 -req -in myserver.local.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out myserver.local.crt -days 500 -sha256
В конфигурации для веб-сервера nginx я добавил следующие записи:
lists 443 ssl;
server_name myserver.local;
ssl_certificate /etc/nginx/certificates/myserver.local/myserver.local.crt;
ssl_certificate_key /etc/nginx/certificates/myserver.local/myserver.local.key;
ssl_dhparam /etc/nginx/dhparams.pem;
Я установил корневой сертификат на устройство iOS (версия 13), а затем принял сертификат в настройках (Настройки - Общие - Профиль).
После перезапуска сервера я все еще получаю подсказку, что сертификат не доверяет. К сожалению, iOS не дает мне подробной информации, поэтому я не могу найти подсказку, с чего начать устранение неполадок. В MacOS с Chrome и Safari я также получаю сообщение об ошибке. Здесь я также импортировал корневой сертификат в связку ключей.
У кого-нибудь есть подсказка, что здесь не так?