Имеется почтовый сервер MDaemon 16 версии, необходимо получить SSL сертификат у стороннего авторизованного центра сертификации, для дальнейшего использования протоколов POP3 SSL, IMAP SSL, SMTP SSL. Весь процесс того, как это сделать опишу здесь.
Коротко о самом сертификате.
Сертификат - это открытый ключ, необходимый для шифрования в работе указанных протоколов. Сертификату обязательно соответствует
закрытый ключ, контейнер закрытого ключа должен храниться на web-сервере, на котором будут использоваться SSL-протоколы. Так же, необходимо наличие
корневого и
промежуточных (если такие имеются) сертификатов центра сертификации, для того, чтобы система понимала путь сертификации и знала откуда Ваш сертификат происходит и что он действителен. Т.е. полный список того, чтобы SSL-сертификат работал:
- SSL-сертификат домена или хоста домена,
- закрытый ключ,
- промежуточный сертификат центра сертификации,
- корневой сертификат центра сертификации.
Как и где взять сертификат?
Есть два варианта:
- развернуть свой центр сертификации и выпустить самоподписанный сертификат
или же
- обратиться к стороннему удостоверяющему центру, такому как Thawte, Comodo, Let's Encrypt и т.д.
Сертификаты от известных УЦ имеют преимущество в том, что их корневые сертификаты предустановлены в браузерах, и вопросов о возникновении Вашего сертификата в браузере не возникнет. Чаще всего получить SSL-сертификат у такого УЦ стоит
некоторую сумму денег, и цена различается в зависимости от того, что именно сертификат подтверждает - домен, организацию, степень доверия. Но, например, у Comodo можно заказать бесплатный сертификат, действие которого продлится не более 90 суток. Он будет подтверждать только определенный хост домена в двух вариациях - domen.ru и www.domen.ru. Такие же бесплатные сертификаты можно заказать у Let's Encrypt.
О получении бесплатного сертификата от Let's Encrypt и настройке автоматического продления можно почитать
тут.
Остановились на том, что сертификат будет куплен на год у компании
RuCenter. Это будет сертификат Thawte SSL 123 для подтверждения домена. Причем покупка SSL-сертификата у партнеров, чем у самих УЦ часто бывает выгодней.
Для того, чтобы заказать сертификат нужно создать файл запроса. И опять есть несколько вариантов: создать запрос на сайте УЦ или на своем сервере (компьютере) с помощью различного программных продуктов (например, можно использовать пакет OpenSSL, но мы пойдем путем проще).
P.S. Доверять созданию запроса на сайте я бы не стала, столкнулась с тем , что первый раз при генерации запроса закрытый ключ не сохранился (хотя техподдержка говорит о том, что он должен был сохраниться автоматически), из-за отсутствия закрытого ключа сертификат пришлось перевыпускать.
Запрос сертификата.
В нашем случае воспользуемся стандартными средствами Windows, и статьей из базы знаний о MDaemon (
пруф-линк).
MDaemon не имеет встроенных средств для создания файла запроса сертификата (Certificate Signing Request, CSR), который необходим для получения SSL-сертификата у стороннего центра сертификации (Certification authority, CA).
В ОС Windows имеется встроенная утилита командной строки
certreq.exe, которая позволяет создать запрос и импортировать новые сертификаты в хранилище сертификатов Windows, а далее MDaemon уже может воспользоваться ими оттуда.
Необходимо создать CSR-запрос на сертификат с длиной ключа в 2048 бита и заказать сертификат у Центра сертификации.
1. Логинимся на нашем сервере с MDaemon под учетной записью с правами администратора.
2. Создаем файл с именем "CSRParameters.inf" в корне диска C с помощью Блокнота или другого текстового редактора.
;----------------- request.inf -----------------
[NewRequest]
Subject="CN=mail.vlc.ru,O=Administration Vladivostok,S=Primorsky krai,L=Vladivostok,C=RU"
KeySpec=1
KeyLength=2048
Exportable=TRUE
MachineKeySet=TRUE
SMIME=False
PrivateKeyArchive=FALSE
UserProtected=FALSE
UseExistingKeySet=FALSE
ProviderName="Microsoft RSA SChannel Cryptographic Provider"
ProviderType=12
RequestType=PKCS10
KeyUsage=0xa0
Silent=TRUE
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1
OID=1.3.6.1.5.5.7.3.2
;-----------------------------------------------
3. Открываем командную строку, переходим в корень диска C
cd C:\
Вводим следующую команду
certreq -new CSRParameters.inf CSROutput.pem
4. Проверяем наличие файла CSROutput.pem на диске C.
5. Открываем файл CSROutput.pem текстовым редактором и копируем его содержимое в поле для запроса на сайте УЦ. Сам запрос будет выглядеть следующим образом:
-----BEGIN NEW CERTIFICATE REQUEST-----
3DQIDMQwWCjYuMS43NjA.....[запрос, закодированный по схеме Base64]
-----END NEW CERTIFICATE REQUEST-----
6. В ответ на запрос УЦ пришлет сертификат в формате .crt и корневые сертификаты (если корневых сертификатов не было приложено, их можно взять на сайте УЦ).
Установка сертификата.
1. Открываем консоль mmc, добавляем оснастку "Сертификаты" (локального компьютера). Переходим во вкладку "Личное" и нажимаем в консольном меню "Импорт".
P.S. Сначала необходимо установить полученный SSL-сертификат на том компьютере, где генерировался запрос. Т.к. контейнер закрытого ключа был сохранен именно там. Если запрос генерировался на сервере, где сертификат будет использоваться, то Экспорт и перенос сертификата не нужен.
2. Импортируем SSL-сертификат в "Личное", промежуточные в "Промежуточные центры сертификации", а корневой в "Доверенные центры сертификации". В "Личном" появится сертификат для Вашего домена с иконкой сертификата с ключом. Это значит, что сертификат установлен так, как нам нужно.
3. Если сертификат необходимо перенести на сервер, то следует из "Личного" выполнить экспорт в формате PKCS #12 с экспортом закрытого ключа, а так же отметить:
- Экспортировать все расширенные свойства.
Необходимо также будет установить пароль, который позже потребуется при импорте сертификата на сервер.
4. Импортировать .pfx сертификат в "Личное". Промежуточные в "Промежуточные центры сертификации", а корневой в "Доверенные центры сертификации".
Если всё сделано верно, то в настройках MDaemon "Безопасность", далее "Параметры безопасности", далее "SSL & TLS", далее "MDaemon" отразиться установленный сертификат для нашего домена.
Повторная установка сертификата.
Нужен OpenSSL, открываем его C:\Program Files (x86)\OpenSSL-Win32\bin\OpenSSL.exe
Пишем:
pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt