Я настраиваю аутентификацию веб-сайта на основе PKI на сервере со следующими конфигурациями.
Server: Ubuntu 18.04.2 LTS
Nginx : 1.14.0
Openssl : 1.1.1
Вот шаги, которые я предпринял для настройки аутентификации на основе базы сертификатов:
1) Первая настройкаHTTPS для моего сайта.После: https://www.humankode.com/ssl/create-a-selfsigned-certificate-for-nginx-in-5-minutes
2) Создать CA: openssl genrsa -des3 -out ca.key 4096
(дал пароль для ca)
3) Создать сертификат CA: openssl req -new -x509 -days 365 -key ca.key -out ca.crt
(используется выше пароль ca)
4) Создать ключ пользователя: openssl genrsa -des3 -out user.key 4096
(дал пароль пользователя)
5) Создать пользователя csr: openssl req -new -key user.key -out user.csr
(используется пароль пользователя)
6) Подписание CSR: openssl x509 -req -days 365 -in user.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out user.crt
(используется пароль CA)
7) Создание PKCS (PFX): openssl pkcs12 -export -out user.pfx -inkey user.key -in user.crt -certfile ca.crt
(Используемый пароль пользователя) (дал пароль для экспорта)
Наконец я получаю файл user.pfx
вна мой рабочий стол и импортируйте его в мой браузер (используя пароль экспорта).
Конфигурация Nginx аналогична приведенной ниже.
server {
listen 443 ssl;
listen [::]:443 ssl;
root /path to web root/;
index index.php index.html index.htm index.nginx-debian.html;
ssl on;
ssl_certificate /etc/nginx/ssl/localhost.crt;
ssl_certificate_key /etc/nginx/ssl/localhost.key;
ssl_protocols SSLv3 TLSv1.2 TLSv1.1 TLSv1;
ssl_client_certificate /etc/nginx/ssl/ca_client/ca.crt;
ssl_verify_client on;
Я использую /etc/nginx/ssl/
, чтобы сохранить все файлы сертификатов для HTTPS,и я использую /etc/nginx/ssl/ca_client/
, чтобы сохранить все файлы, сгенерированные описанными выше шагами.
Когда я просматриваю свой веб-сайт, появляется всплывающее окно, чтобы выбрать сертификат и один раз выбрать сертификат, а затем выдает 400 Bad Request, The SSL certificate error
.
Что мне здесь не хватало?