пятница, 25 ноября 2016 г.

SSL Certificate for Zimbra



Подключение 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;
        }
}

Комментариев нет:

Отправить комментарий