Подключение SSL сертификата для работы Zimbra по https
# mkdir /tmp/cert
Скачиваем нужные pem файлы с StarSSL сайта
wget https://www.startssl.com/certs/ca.pem
wget https://www.startssl.com/certs/sub.class1.server.ca.pem
cat startcom-ca.pem startcom-sub.class1.server.ca.pem > ca_bundle.crt
Копируем ключ
# cp DOMAIN.key /opt/zimbra/ssl/zimbra/commercial/commercialpass.key
Удаляем пароль из ключа
(небезопасно, но при рестарте Zimbra не будет требовать его ввести каждый раз)
# openssl rsa -in /opt/zimbra/ssl/zimbra/commercial/commercialpass.key -out /opt/zimbra/ssl/zimbra/commercial/commercial.key
Назначаем верные права
# chmod 740 /opt/zimbra/ssl/zimbra/commercial/commercial.key
Из архива с сертификатами, что предоставил StarSSL, копируем папку OtherServer
# cp OtherServer /tmp/cert
# ls -l OtherServer
1_Intermediate.crt
2_DOMAIN.crt
root.crt
Произведём переименование и объединение
# cd /tmp/cert/OtherServer
# mv 2_DOMAIN.crt commercial.crt
# cat root.crt 1_Intermediate.crt > ca_chain.crt
Проверяем цепочку сертификатов
# /opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /tmp/cert/OtherServer/commercial.crt /tmp/cert/OtherServer/ca_chain.crt
** Verifying /tmp/commercial.crt against /opt/zimbra/ssl/zimbra/commercial/commercial.key
Enter pass phrase for /opt/zimbra/ssl/zimbra/commercial/commercial.key:
Certificate (/tmp/commercial.crt) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
Valid Certificate: /tmp/commercial.crt: OK
Инсталируем сертификаты
# /opt/zimbra/bin/zmcertmgr deploycrt comm /tmp/cert/OtherServer/commercial.crt /tmp/cert/OtherServer/ca_chain.crt
Для ReverseProxy на NGINX нужно будет сделать
Удаление пароля из ключа
# openssl rsa -in DOMAIN.key -out DOMAIN.nopass.key
При этом файл конфигурации для ReverseProxy Nginx будет выглядеть так
server {
listen 80;
server_name mail.DOMAIN.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name mail.DOMAIN.com;
ssl_certificate /var/www/cert/new/DOMAIN.crt;
ssl_certificate_key /var/www/cert/new/DOMAIN.nopass.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://192.168.1.200;
}
}
Комментариев нет:
Отправить комментарий