nops
@nops
Системный администратор.

Авторизация по сертификатам?

Имеем сервер на убунту, до этого был и Centos и freebsd, на всех ситуация абсолютно идентичная.
Итак имеем Nginx.
На сервере создан виртуалхост и для него созданы сертификат LetsEncrypt.
Пробовал разные инструкции, суть которых заключалась в создании центра сертификации, потом создание сертификата сервера и клиентского сертификата.
Все создал, в конфигурации прописал, вес вроде как должно работать, но нет.
Пробовал сертификат сервера использовать и самоподписанный и LetsEncrypt.
При обращении и вводе пароля от клиентского сертификата получаю ошибку:

2021/12/13 11:01:10 [debug] 3862#3862: *3 SSL ALPN supported by client: http/1.1
2021/12/13 11:01:10 [debug] 3862#3862: *3 SSL ALPN selected: http/1.1
2021/12/13 11:01:10 [debug] 3862#3862: *3 SSL_do_handshake: -1
2021/12/13 11:01:10 [debug] 3862#3862: *3 SSL_get_error: 2
2021/12/13 11:01:10 [debug] 3862#3862: *3 SSL handshake handler: 0
2021/12/13 11:01:10 [debug] 3862#3862: *<b>3 verify:0, error:18, depth:0, subject:"/C=RU/ST=Sverdlovskaya/L=Yekaterinburg/O=domain/OU=User/CN=etc/emailAddress=support@domain.ru", issuer:"/C=RU/ST=Sverdlovskaya/L=Yekaterinburg/O=domain/OU=User/CN=etc/emailAddress=support@domain.ru"
2021/12/13 11:01:10 [debug] 3862#3862: *3 verify:1, error:18, depth:0, subject:"/C=RU/ST=Sverdlovskaya/L=Yekaterinburg/O=domain/OU=User/CN=etc/emailAddress=support@domain.ru", issuer:"/C=RU/ST=Sverdlovskaya/L=Yekaterinburg/O=domain/OU=User/CN=etc/emailAddress=support@domain.ru"</b>
2021/12/13 11:01:10 [debug] 3862#3862: *3 ssl new session: 7D45FB3F:32:1098
2021/12/13 11:01:10 [debug] 3862#3862: *3 SSL_do_handshake: 1
2021/12/13 11:01:10 [debug] 3862#3862: *3 SSL: TLSv1.2, cipher: "ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD"
2021/12/13 11:01:10 [debug] 3862#3862: *3 reusable connection: 1
2021/12/13 11:01:10 [debug] 3862#3862: *3 http wait request handler
2021/12/13 11:01:10 [debug] 3862#3862: *3 malloc: 000055793AC585A0:1024
2021/12/13 11:01:10 [debug] 3862#3862: *3 SSL_read: -1
2021/12/13 11:01:10 [debug] 3862#3862: *3 SSL_get_error: 2
2021/12/13 11:01:10 [debug] 3862#3862: *3 free: 000055793AC585A0
2021/12/13 11:01:10 [debug] 3862#3862: *3 http wait request handler
2021/12/13 11:01:10 [debug] 3862#3862: *3 malloc: 000055793AC585A0:1024
2021/12/13 11:01:10 [debug] 3862#3862: *3 SSL_read: 465
2021/12/13 11:01:10 [debug] 3862#3862: *3 SSL_read: -1
2021/12/13 11:01:10 [debug] 3862#3862: *3 SSL_get_error: 2
2021/12/13 11:01:10 [debug] 3862#3862: *3 reusable connection: 0
2021/12/13 11:01:10 [debug] 3862#3862: *3 posix_memalign: 000055793AC5EBF0:4096 @16
2021/12/13 11:01:10 [debug] 3862#3862: *3 http process request line
2021/12/13 11:01:10 [debug] 3862#3862: *3 http request line: "POST /Base/e1cib/login?nm=3463004214345805875&vl=ru_RU&ni=-1201899248&version=8.3.10.2580&clnId=4638a353-facb-45a4-9faa-f2eaa86678f5 HTTP/1.1"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http uri: "/base/e1cib/login"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http args: "nm=3463004214345805875&vl=ru_RU&ni=-1201899248&version=8.3.10.2580&clnId=4638a353-facb-45a4-9faa-f2eaa86678f5"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http exten: ""
2021/12/13 11:01:10 [debug] 3862#3862: *3 posix_memalign: 000055793ABF6D60:4096 @16
2021/12/13 11:01:10 [debug] 3862#3862: *3 http process request header line
2021/12/13 11:01:10 [debug] 3862#3862: *3 http header: "Host: domain.ru"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http header: "Accept-Charset: utf-8"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http header: "User-Agent: 1CV8C"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http header: "1C-ApplicationName: 1CV8C"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http header: "Accept: application/xml"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http header: "Accept-Encoding: deflate,1CSDC;q=0.5"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http header: "Accept-Language: ru-RU"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http header: "1C-BaseLocation: https://domain.ru/Base"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http header: "Content-Length: 0"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http header: "Content-Type: application/x-www-form-urlencoded"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http header done
2021/12/13 11:01:10 [info] 3862#3862: *3 <b>client SSL certificate verify error: (18:self signed certificate) while reading client request headers, client: 212.49.112.114, server: domain.ru, request: "POST /Base/e1cib/login?nm=3463004214345805875&vl=ru_RU&ni=-1201899248&version=8.3.10.2580&clnId=4638a353-facb-45a4-9faa-f2eaa86678f5 HTTP/1.1", host: "domain.ru"</b>
2021/12/13 11:01:10 [debug] 3862#3862: *3 http finalize request: 495, "/Base/e1cib/login?nm=3463004214345805875&vl=ru_RU&ni=-1201899248&version=8.3.10.2580&clnId=4638a353-facb-45a4-9faa-f2eaa86678f5" a:1, c:1
2021/12/13 11:01:10 [debug] 3862#3862: *3 event timer del: 14: 3740928
2021/12/13 11:01:10 [debug] 3862#3862: *3 http special response: 495, "/Base/e1cib/login?nm=3463004214345805875&vl=ru_RU&ni=-1201899248&version=8.3.10.2580&clnId=4638a353-facb-45a4-9faa-f2eaa86678f5"
2021/12/13 11:01:10 [debug] 3862#3862: *3 http set discard body
2021/12/13 11:01:10 [debug] 3862#3862: *3 xslt filter header
2021/12/13 11:01:10 [debug] 3862#3862: *3 <b>HTTP/1.1 400 Bad Request</b>
Server: nginx/1.18.0 (Ubuntu)
Date: Mon, 13 Dec 2021 11:01:10 GMT
Content-Type: text/html
Content-Length: 224
Connection: close

Почему не принимает сертификат?
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 1
@dronmaxman
VoIP Administrator
Могу поделиться рабочим примером конфигурации. Центр сертификации на windows, SBCA - сертификат центра сертификации, ROOT - корневой сертификат. Есть еще скрипт который создает файлики /etc/nginx/cn_users/$cn_user для каждой учетки в АД, так происходит проверка на вхождение пользователя в группу (костыль, но работает). Сертификат на домене от LetsEncrypt.
server {
        listen   443 ssl;
        server_name  domain.example.ua;

        access_log /var/log/nginx/access-my_example.ua.log combined_ssl;
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error_id_example-ua.log  debug;

keepalive_timeout 70;
        ssl                  on;
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_certificate /etc/ssl/certs/wildcard-dv-example-ua.cer;
        ssl_certificate_key /etc/ssl/private/wildcard-dv-example-ua-private.key;


        ssl_client_certificate /etc/nginx/SBCA.pem;
        ssl_trusted_certificate /etc/nginx/ROOT.pem;

        ssl_verify_client on;
        ssl_verify_depth 2;
        ssl_session_timeout  25m;
        ssl_session_cache   shared:SSL:10m;
        ssl_protocols      TLSv1.2 TLSv1.1 TLSv1;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

    add_header Strict-Transport-Security "max-age=31536000";


    
   location / {
## Проверка на вхождение в группу АД
#if ($ssl_client_s_dn ~* "CN=(.*)") { set "$cn_user" "$1"; }
#if (!-f "/etc/nginx/cn_users/$cn_user" ) { return 403; }

 proxy_pass https://10.10.20.20;
 proxy_ssl_verify              off;
 proxy_set_header Host $host;
 proxy_read_timeout 300;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 add_header Front-End-Https on;
 proxy_http_version 1.1;
 proxy_set_header Connection "";
 client_max_body_size 0;
 proxy_redirect off;
           }
        }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы