Изменения

Перейти к: навигация, поиск
м
Нет описания правки
Интернет полон HOWTO по настройке клиентских SSL-сертификатов в Апаче, которые все сводятся к тому, что нужно сгенерировать сертификаты для сервера и клиентов, подписать клиентские каким-нибудь CA-сертификатом, слить их в PKCS-12 и поставить в браузер, а на сервере прописать <tt>SSLVerifyClient require</tt> и <tt>SSLCACertificateFile &lt;/path/to/ca.pem&gt;</tt>.
Однако нигде не упоминается важный момент, о котором легко забыть, если использовать «искаробочный» openssl: клиентские сертификаты должны быть именно что клиентскими — поле <tt>nsCertType</tt> у них должно иметь значение <tt>client, email</tt> (возможно ещё <tt>, objsign</tt>), но никак не <tt>server</tt>, который генерится по умолчанию(что приводит к ошибкам OpenSSL: Exit: error in SSLv3 read client certificate)! Прописывается это в <tt>/etc/ssl/openssl.conf</tt> (или там, где лежит ваш <tt>openssl.conf</tt>).
Аналогично CA-сертификат должен быть CA, то есть, иметь <tt>basicConstraints=CA:TRUE</tt>. Но об этом забыть сложно, потому что команды генерации CA-сертификата всё равно никто никогда не помнит, а все используют <tt>/usr/lib/ssl/misc/CA.pl</tt> или <tt>CA.sh</tt>, который выставляет <tt>basicConstraints</tt> правильно.

Навигация