piątek, 8 lutego 2013

SSL dla serwera ISPConfig - Debian Squeeze cz.2

Mając już utworzone środowisko z serwerami www, pocztowym oraz bazodanowym możemy dodatkowo zabezpieczyć certyfikatem SSL.

Utworzymy certyfikat dla naszej domeny oraz głównej maszyny (odpowiednio example.com oraz root.example.com, jeżeli wpiszemy *.example.com certyfikat będzie dotyczył wszystkich subdomen, jednak będzie płatny).

Musimy posiadać prawa dostępu jako root.

1) Wygenerowanie CSR (Certificate Signing Request):

Domyślnie ISPConfig posiada od wersji 3.0.4 automatycznie CSR. Musimy włączyć SSL w ISPConfig (jako resseler - ISP Manager -> ISP Reseller -> Limits -> kwadracik SSL, lub jako admin).
Do wygenerowania certyfikatu użyjemy poleceń:

cd /usr/local/ispconfig/interface/ssl/

openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout ispserver.key -out ispserver.csr
Tych dwóch rzeczy potrzebujemy, podczas generowania musimy wypełnić wszystkie potrzebne rzeczy. 
Możemy podejrzeć csr:
cat /usr/local/ispconfig/interface/ssl/ispserver.csr







2) Certyfikat SSL:


Przechodzimy  http://www.startssl.com/, musimy utworzyć nowe konta na stronie.Musimy sprawdzić na zakładce Validations Wizard  (po zalogowaniu) naszą domenę. Jeżeli test wypadnie pomyślnie możemy wygenerować certyfikat, w tym celu wybieramy kolejno: Certificates Wizard -> Web Server SSL/TLS Certificate z Certificate Target.




W kolejnym oknie klikamy na Skip:



Wygenerujemy nowy .csr:


W kolejnych krokach musimy podać naszą domenę example.com oraz subdomeny root. Na maila dostaniemy informacje o wygenerowaniu certyfikatu. Przechodzimy na Tool Box, klikamy na Continue. Na koniec dostaniemy certyfikat:



Robimy backup naszym certyfikatów oraz csr na naszej maszynie.


mv /usr/local/ispconfig/interface/ssl/ispserver.crt /usr/local/ispconfig/interface/ssl/ispserver.crt_bak
vi /usr/local/ispconfig/interface/ssl/ispserver.crt

do pliku wklejamy wygenerowany ze strony certyfikat csr, dzięki czemu będziemy używać teraz nowego certyfikatu.

Następnie pobieramy Root CA oraz Server CA:
cd /usr/local/ispconfig/interface/ssl
wget https://www.startssl.com/certs/ca.pem
wget https://www.startssl.com/certs/sub.class1.server.ca.pem 

Zmieniamy nazwy:
mv ca.pem startssl.ca.crt
mv sub.class1.server.ca.pem startssl.sub.class1.server.ca.crt

Część usług wymaga pliku .pem:
cat startssl.sub.class1.server.ca.crt startssl.ca.crt > startssl.chain.class1.server.crt
cat ispserver.{key,crt} startssl.chain.class1.server.crt > ispserver.pem
chmod 600 ispserver.pem






3) Konfiguracja Apache'a:

vi /etc/apache2/sites-available/ispconfig.vhost
Dodajemy / podmieniamy (musimy uważać na nazwy):
# SSL Configuration
  SSLEngine On
  SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt
  SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key
  ## must be re-added after an ISPConfig update!!!
  SSLCertificateChainFile /usr/local/ispconfig/interface/ssl/startssl.sub.class1.server.ca.crt
na koniec restart:

/etc/init.d/apache2 restart






4) Postfix:

cd /etc/postfix
mv smtpd.cert smtpd.cert_bak
mv smtpd.key smtpd.key_bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.crt smtpd.cert
ln -s /usr/local/ispconfig/interface/ssl/ispserver.key smtpd.key

postconf -e 'smtpd_tls_CAfile = /usr/local/ispconfig/interface/ssl/startssl.chain.class1.server.crt'
restart postfix:
/etc/init.d/postfix restart

5) Dovecot:

vi /etc/dovecot/dovecot.conf
powinny znaleźć się tam poniższe wiersze:
ssl_cert_file = /etc/postfix/smtpd.cert
ssl_key_file = /etc/postfix/smtpd.key
## must be re-added after an ISPConfig update!!!
ssl_ca_file = /usr/local/ispconfig/interface/ssl/startssl.chain.class1.server.crt

restart:

/etc/init.d/dovecot restart






6) PureFTPd:


cd /etc/ssl/private/
mv pure-ftpd.pem pure-ftpd.pem_bak

ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pure-ftpd.pem

restart:

/etc/init.d/pure-ftpd-mysql restart

Od teraz powinniśmy móc logować się przez https.



Brak komentarzy:

Prześlij komentarz