Неверный логин или пароль
Забыли пароль?
 
22 Ноября 2024 пятница
Александр Забалуев17.10.2010  с помощью Blogger
StartSSL или как избавиться от самоподписанных сертификатов (с хабра)
Мне по долгу работы пришлось предостаточно навозиться с самоподписанными SSL-сертификатами: это и разные панели управления, и почта, и серверы приложений. Вообще всего и не вспомнить, в большинстве случаев можно легко обойтись самоподписанными сертификатами, но даже в этих случаях напрягает постоянно импортировать их в браузер(иногда это нетривиально, как например в гугл хром) или почтовый клиент(как Mail App), а если говорить о почте например так там вообще полная засада, если у Вас много пользователей то некоторый процент обязательно позвонит к вам что бы сообщить что у них ошибка «что-то про сертификат». Конечно можно научить юзеров импортировать их, но на много приятней когда вообще ничего выше описанного не происходит. С другой стороны покупать сертификат не дешевое удовольствие, как минимум 15 баксов если поискать, это всегда меня останавливало, так как критичной необходимости в подписанном сертификате вроде бы и нет, и отдавать свои кровные не хочется. Так я вот жил на самоподписанных сертификатах с незапамятных времен.

Совсем вот недавно я наткнулся на сервис https://startssl.com. Вкратце, сервис позволяет получить валидный SSL-сертификат абсолютно бесплатно, такой сертификат распознается браузерами, почтовыми клиентами и даже мобильными устройствами(лично не проверял).
image
Как я уже сказал, выпускать сертификаты можно абсолютно бесплатно, но действуют некоторые ограничения, к примеру такие сертификаты нельзя использовать для финансовых операций и e-commerce. Также отзыв сертификата будет стоить вам денег. Нельзя создавать wildcard сертификаты а также сертификаты валидные для нескольких доменов/субдоменов.
В тоже время доступны и платные услуги, после уплаты некоторой суммы($49) и прохождения проверки личности, эти ограничения будут сняты(кроме оплаты отзыва сертификата), и Вы все еще сможете получать сертификаты бесплатно, и в них уже будут указанные ваши данные.

Как пользоваться их вебсайтом рассказывать я не буду, так как, там все достаточно просто.
Добавлю только что установка сертификатов иногда не тривиальна, но она того стоит.
Если кому надо помощь с установкой в postfix,dovecot буду рад помочь, пишите в личку.
Описание установки сертификатов в Apache и IIS есть у них на сайте.







Установка StartSSL сертификатов — Postfix/Dovecot/Nginx

В предыдущем топике я рассказал о сервисе где можно бесплатно получить ssl-сертификаты. И как бы в продолжение решил описать как установить их на то или иное ПО.

Я рассмотрю следующее ПО:
  • Postfix

  • Dovecot

  • Nginx

Все выше перечисленное установлено на CentOS 5.5.

Postfix

С постфиксом я намучился больше всего. Казалось бы, есть документация, куча примеров и тд, должно быть все просто, но нет, перепробовав кучу вариантов попутно перечитывая документацию я убил не мало времени пока все стало работать.

Погдотовка
Подразумевается что у вас уже есть приватный ключ и сертификат для домена.

mail.example.com.key

mail.example.com.crt


Также вам необходимо скачать файл с сертификатом промежуточного CA необходимого класса.

Их можно найти здесь

Для бесплатных сертификатов это sub.class1.server.ca.pem

В этом примере я использую приватный ключ без пассфразы.

И так у нас есть 3 файла.

mail.example.com.key

mail.example.com.crt

sub.class1.server.ca.pem


Создадим файл который скушает постфикс

cat mail.example.com.key mail.example.com.crt sub.class1.server.ca.pem > mail.example.com.pem

копируем полученный файл куда надо, я свой положил в /etc/pki/postfix/

Конечно же не забиваем выставить владельца и права, так как в файле наш ключ.



в /etc/postfix/main.cf добавляем:

smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt

smtpd_tls_cert_file = /etc/pki/postfix/mail.example.com.pem # путь к нашему файлу

smtpd_tls_key_file = /etc/pki/postfix/mail.example.com.pem # путь к нашему файлу

smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_session_cache

smtpd_use_tls = yes



smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt

smtp_tls_cert_file = /etc/pki/postfix/mail.example.com.pem # путь к нашему файлу

smtp_tls_key_file = /etc/pki/postfix/mail.example.com.pem # путь к нашему файлу

smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache

smtp_use_tls = yes

smtpd_tls_security_level = may



smtpd_tls_received_header = yes

smtpd_tls_loglevel = 1

smtpd_tls_auth_only = no

tls_random_source = dev:/dev/urandom



Что значит каждый параметр и за что он отвечает можно узнать в документации для Postifx

для проверки того что все окей можно использовать следующую комманду:

openssl s_client -starttls smtp -showcerts -connect localhost:25

В результате должно вернуться что то вроде:

SSL handshake has read 4760 bytes and written 354 bytes

---

New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA

Server public key is 4096 bit

Secure Renegotiation IS supported

Compression: NONE

Expansion: NONE

SSL-Session:

Protocol : TLSv1

Cipher : DHE-RSA-AES256-SHA

Session-ID: 418AA0ED7BA85B2B9301FA127D05DCAFABCEDC192101A6E75DD872FA3E528366

Session-ID-ctx:

Master-Key: 498FB41D5810A9768710936351DC92169B6D7DEFAHTEDBDUO60DE9349DA7EB5536F975A8BC4AF190466B637CC129A93E

Key-Arg : None

Krb5 Principal: None

Start Time: 1287331961

Timeout : 300 (sec)

Verify return code: 0 (ok)

---

250 DSN



в /etc/postfix/master.cf раскомментируем следующие строки:

smtps inet n - n - - smtpd

-o smtpd_tls_wrappermode=yes

-o smtpd_sasl_auth_enable=yes




На этом с постфиксом все.



Dovecot

С довекотом все оказалось намного проще и у меня все заработало с первого раза

Погдотовка
У вас уже есть 3 файла

mail.example.com.key

mail.example.com.crt

sub.class1.server.ca.pem


Копируем ключ, создаем сертификат который скушает dovecot

cp mail.example.com.key /etc/pki/dovecot/private/

cat mail.example.com.crt sub.class1.server.ca.pem > /etc/pki/dovecot/certs/mail.example.com.pem



В dovecot.conf надо прописать:

ssl_cert_file = /etc/pki/dovecot/certs/mail.example.com.pem

ssl_key_file = /etc/pki/dovecot/private/mail.example.com.key


и конечно же включить SSL

ssl_listen = *

ssl = yes


И добавить в список протоколов необходимые лично вам.

protocols = pop3 pop3s imap imaps



Nginx

С ним тоже все очень просто и в целом процедура не отличается от dovecot'овской

Погдотовка
У вас уже есть 3 файла

mail.example.com.key

mail.example.com.crt

sub.class1.server.ca.pem


Копируем ключ, создаем сертификат который скушает nginx

cp mail.example.com.key /etc/pki/nginx/private/

cat mail.example.com.crt sub.class1.server.ca.pem > /etc/pki/nignx/certs/mail.example.com.pem



в конфигурации для хоста nginx должно быть что типа такого:

server {

listen 443;

server_name mail.example.com;

ssl on;

ssl_certificate /etc/pki/nignx/certs/mail.example.com.pem;

ssl_certificate_key /etc/pki/nginx/private/mail.example.com.key;



ssl_session_timeout 5m;



ssl_protocols SSLv2 SSLv3 TLSv1;

ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

ssl_prefer_server_ciphers on;



location / {

root /srv/www/htdocs/;

index index.html index.htm;

}

}




 




автор: syncer