Apache + mod_ssl

Opracowane przez: 'BiExi'
2005-03-10 13:40

A więc instalujemy

apt-get install apache
apt-get install libapache-mod-ssl

następnie załączamy co trzeba

apache-modconf apache enable mod_ssl
apache-modconf apache enable setenvif

tworzymy plik /etc/apache/conf.d/mod-ssl.conf
oto jego przykładowa zawartość

<IfModule mod_ssl.c>
        Listen 80
        Listen 443
        AddType application/x-x509-ca-cert .crt
        AddType application/x-pkcs7-crl    .crl
        SSLMutex file:/var/run/mod_ssl_mutex
        SSLSessionCache         none
        SSLRandomSeed startup file:/dev/urandom 512
        SSLRandomSeed connect file:/dev/urandom 512
        SSLLog /var/log/apache/ssl_engine.log
        SSLLogLevel info
</IfModule>

Ok teraz przydało by się wygenerować certyfikata
przechodzimy do katalogu /usr/lib/ssl/misc/
edytujemy plik CA.sh mniej więcej linia 87 mamy coś takiego

-out ${CATOP}/$CACERT $DAYS

zmieniamy na

-out ${CATOP}/$CACERT -days 1024

teraz możemy już zacząć co nieco sobie generować...
Generujemy certyfikat instytucji certyfikujacej

./CA.sh -newca

powstał nam nowy katalog gdzie interesuje nas
Certyfikat naszej instytucji
/usr/lib/ssl/misc/demoCA/cacert.pem
klucz prywatny do w/w certyfikatu
/usr/lib/ssl/misc/demoCA/private/cakey.pem

tworzymy certyfikat dla naszego serwera www

CA.sh -newreq

wypełniamy pola i na pytanie o

Common Name (eg, YOUR name) []:

podajemy adres naszej strony internetowej Teraz podpisujemy nasz certyfikat

./CA.sh -sign

Usuwamy hasło z klucza prywatnego

openssl rsa -in newreq.pem -out newreq.pem

mamy 2 pliki
Nasz certyfikat dla apacha
/usr/lib/ssl/misc/newcert.pem
oraz klucz do certyfikatu
/usr/lib/ssl/misc/newreq.pem

umieszczamy pliki tam gdzie ich miejsce

cp /usr/lib/ssl/misc/newcert.pem /etc/apache/ssl.crt/nazwadomeny.crt
cp /usr/lib/ssl/misc/newreq.pem /etc/apache/ssl.key/nazwadomeny.key

Niom, teraz sobie możemy pokonfigurowac apach'a
Przykładowy wpis dla VirtualHosta

NameVirtualHost ip.ip.ip.ip:443

<IfModule mod_ssl.c>
  <VirtualHost nazwadomeny.pl:443>
     DocumentRoot /var/www
     ServerName nazwadomeny.pl
     SSLEngine on
     SSLCertificateFile    /etc/apache/ssl.crt/nazwadomeny.crt
     SSLCertificateKeyFile /etc/apache/ssl.key/nazwadomeny.key
     SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
  </VirtualHost>
</IfModule>