Mit SSL verschlüsseln

In den letzten Wochen habe ich mich mit der SSL-Verschlüsselung auseinandergesetzt. Hierzu war der Auftrag gegen, die Kommunikation mit meinem WordPress-Server mit SSL-Zertifikat zu verschlüsseln. Da ein offizielles Zertifikat kostet, musste ich ein selbst-signiertes SSL Zertifikat (Self-Signed SS L Certificates) erstellen. Hier noch meine Anleitung:

  1. OpenSSL installieren

    sudo dnf install openssl -y
    
  2. SSL-Modul für den Apache Webserver installieren

    sudo dnf install mod_ssl -y
    
  3. In einen Ordner wechseln, worauf der private.key gespeichert werden kann

    cd /etc/ssl/
    
  4. private.key generieren

    sudo openssl genrsa -out private.key 2048
    
  5. Mit der private.key Datei die server.csr Datei erstellen

    sudo openssl req -key private.key -new -out server.csr
    
  6. Die gefragten Angaben beantworten, einiges kann auch frei gelassen werden.

  7. Aus der private.key und der server.csr die server.crt Datei generieren

    sudo openssl x509 -signkey private.key -in server.csr -req -days 365 -out server.crt
    
  8. Um den Zertifikat anzuzeigen, kann dieser Befehl benutzt werden

    sudo openssl x509 -text -noout -in server.crt
    
  9. In das angegebene Ordner wechseln

    cd /etc/httpd/conf.d/
    
  10. Die ssl.conf Datei bearbeiten

    sudo vi ssl.conf
    

    Folgende Direktiven sind hierbei anzupassen:

    • DocumentRoot
    • ServerName
    • SSLCertificateFile
    • SSLCertificateKeyFile

    Vorher:

    ...
    
    <VirtualHost _default_:443>
    
    # General setup for the virtual host, inherited from global configuration
    #DocumentRoot "/var/www/html"
    #ServerName www.example.com:443
    
    ...
    
    SSLCertificateFile /etc/pki/tls/certs/localhost.crt
    
    ...
    
    SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    
    ...
    

    Nachher:

    ...
    
    <VirtualHost _default_:443>
    
    # General setup for the virtual host, inherited from global configuration
    DocumentRoot "/var/www/html/wordpress"
    ServerName localhost
    
    ...
    
    SSLCertificateFile /etc/ssl/server.crt
    
    ...
    
    SSLCertificateKeyFile /etc/ssl/private.key
    
    ...