Выпуск сертификата с аутентификацией сайта на основе PKI - PullRequest
2 голосов
/ 03 июля 2019

Я настраиваю аутентификацию веб-сайта на основе 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.

Что мне здесь не хватало?

...