Welcome! Log In Create A New Profile

Advanced

ssl_crl: Несколько crl

February 27, 2011 10:05AM
Доброго времени суток.

Задача такая:
Настроить nginx для использования вместе с авторизацией по ID-карточке использующейся в Эстонии.

У нас в Эстонии граждане и жители с постоянным видом на жительства имеют ID-карточки. Которые раз в 5 лет меняют. Вот здесь подробности: http://en.wikipedia.org/wiki/Estonian_ID_card
По сути на карточке сертификат, по которому выполняется проверка. К браузеру подключается специальный плагин для этого.

Существует конфиг для nginx который был написан давно и копируется с одного форума программистов/сисадминов на другой:
server {
listen 443;
server_name id.domen.ee www.id.domen.ee;
access_log /usr/home/domen/www/logs/nginx-access-https.log main;
fastcgi_intercept_errors on;
error_page 495 496 http://www.domen.ee/id/error_ssl;

ssl on;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
ssl_certificate /usr/home/domen/www/certs/www.domen.ee-CRT.crt;
ssl_certificate_key /usr/home/domen/www/certs/www.domen.ee-RSA.pem;
ssl_client_certificate /usr/home/domen/www/certs/EST-ID.crt;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_verify_client on;
ssl_verify_depth 2;

root /usr/home/domen/www/id_data/;
index index.php index.html index.htm;

location ~ /\.ht {
deny all;
}

location ~ \.php$ {
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/home/domen/www/id_data$fastcgi_script_name;
fastcgi_param X-Client-Verify SUCCESS;
fastcgi_param X-SSL-Subject $ssl_client_s_dn;
fastcgi_param X-SSL-Issuer $ssl_client_i_dn;
fastcgi_param X-SSL-Raw $ssl_client_raw_cert;
fastcgi_param X-SSL-Serial $ssl_client_serial;

include /usr/local/etc/nginx/fastcgi.conf;
}
}
Этот конфиг работает и почти всё с ним в порядке. Проблема лишь в том что по этому конфигу изъятая или утеренная id карточка с сертификатом проходит авторизацию.

Для того чтобы избавиться от этой проблемы нужно подключить ssl_crl, но как это сделать не ясно так как сертификата 3 штуки и CRL списка тоже 3.

Вот здесь есть инструкция для Apache:
http://www.id.ee/?id=10736&&langchange=1 (на эстонском)
Через переводчик: http://translate.google.ee/translate?js=n&prev=_t&hl=ru&ie=UTF-8&layout=2&eotf=1&sl=et&tl=ru&u=http%3A%2F%2Fwww.id.ee%2F%3Fid%3D10736%26%26langchange%3D1

C сертификатами получилось вот так и оно работает:

cat JUUR-SK.PEM.cer ESTEID-SK.PEM.cer ESTEID-SK 2007.PEM.cer > EST-ID.crt

CRL списки обновляются и рекомендуется обновлять их раз в сутки.

wget http://www.sk.ee/crls/esteid/esteid.crl
wget http://www.sk.ee/crls/esteid/esteid2007.crl
wget http://www.sk.ee/crls/juur/crl.crl

конвертация в PEM формат:
openssl crl -in esteid.crl -out esteid.crl -inform DER
openssl crl -in esteid2007.crl -out esteid2007.crl -inform DER
openssl crl -in crl.crl -out crl.crl -inform DER

Вопрос:
Как поступить?
1. Собирать все списки в один файл используя cat? Будет ли так работать? (как вы понимаете у меня нет изъятой или утеренной карточки и проверить будет ли она работать я не могу)
2. Может быть есть возможность указать не файл, а папку со списками crl, как это для апача делается через SSLCARevocationPath?

Благодарю заранее за любые советы по этой проблеме.
Subject Author Posted

ssl_crl: Несколько crl

netinsideout February 27, 2011 10:05AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 153
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready