Mod SSL installeren
Controleer eerst of Apache Mod SSL is geïnstalleerd:
- Installeer de SSL-module — yum install mod_ssl
- Laad de SSL-module in Apache — LoadModule ssl_module modules/mod_ssl.so Listen 443
Kopieer je SSL-certificaat naar de server
Kopieer eerst je certificaatbestanden naar de server, bijvoorbeeld naar de volgende locaties:
- maak een nieuwe map waarin de serversleutel en het certificaat komen te staan — mkdir /etc/httpd/ssl
- Certificaat — /etc/httpd/ssl/exampledomain.com.crt
- Certificaatsleutel — /etc/httpd/ssl/exampledomain.com.key
- CA-certificaat — /etc/httpd/ssl/bundle.crt
Een zelfondertekend SSL-certificaat maken
Voer het onderstaande commando uit:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
Dit commando toont in de terminal een lijst met velden die je moet invullen. De belangrijkste regel is “Common Name”. Vul daar je officiële domeinnaam in.
De standaard virtual host van Apache verwijderen
Standaard maakt mod_ssl een virtual host aan die we niet nodig hebben.
Bewerk /etc/httpd/conf.d/ssl.conf en verwijder de virtual host-definitie van
“<VirtualHost _default_:443>” tot “</VirtualHost>”.
SSL inschakelen
Stel je virtual hosts zo in dat ze het nieuwe certificaat gebruiken. Voeg de directives uit onderstaand sjabloon toe aan je SSL-configuratie (bijvoorbeeld /etc/httpd/conf.d/vhosts.conf) om SSL op je site in te schakelen:
Hier is een sjabloon voor de virtual host-definitie:
<VirtualHost *:443>
DocumentRoot /var/www/vhosts/ exampledomain.com /httpdocs
ServerName exampledomain.com
ServerAlias www. exampledomain.com
ErrorLog logs/ exampledomain.com -ssl-error_log
CustomLog logs/ exampledomain.com -ssl-access_log common
<Directory /var/www/vhosts/exampledomain.com /httpdocs>
AllowOverride All
</Directory>
SSLEngine on
SSLProtocol -ALL +SSLv3 +TLSv1
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:!LOW:!SSLv2:!EXPORT
SSLCertificateFile /etc/pki/tls/certs/ exampledomain.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/ exampledomain.com.key
SSLCACertificateFile /etc/pki/tls/certs/gd_bundle.crt
<Location/>
SSLRequireSSL
</Location>
</VirtualHost>
De directive SSLEngine On zet SSL aan.
Herstart Apache om je wijzigingen te laden.
Problemen oplossen
- Krijg je bij het herstarten van httpd een melding als “[warn] _default_ VirtualHost overlap on port 443, the first has precedence”, dan heb je de standaard virtual host van mod_ssl niet verwijderd.
- Mogelijk moet je de iptables-configuratie aanpassen om verkeer naar TCP-poort 443 toe te staan.