Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:apache_http_server_centos_7_-_mod_ssl_-_verschluesselung_https

Apache HTTP Server CentOS 7 - mod_ssl - Verschlüsselung (https)

Das Apache HTTP Server-Modul mod_ssl wird benötigt um HTTP Kommunikation verschlüsselt betreiben zu können. Die Seitenaufrufe werden nicht mehr via http auf Port 80 erreicht, sonder via https auf Port 443. Um eine HTTP Kommunikation verschlüsselt betreiben zu können, sind zwei weitere Komponenten erforderlich, nämlich ein Schlüssel und ein Zertifikat.

:!: WICHTIG - Nachfolgende Konfigurationen setzen die Einrichtung eines Apache HTTP Servers, wie unter nachfolgendem internen Link beschrieben, voraus:

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root zu werden geben Sie bitte folgenden Befehl ein:

$ su -
Password: 

iptables Regel

Damit der Apache HTTP Server auch erreichbar ist und nicht die verschlüsselten Web-Anfragen vom Paketfilter iptables blockiert werden, muss nachfolgende Regel zum iptables-Regelwerk hinzugefügt werden.

Um die aktuellen iptables-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out   source       destination         
1       70  5752 ACCEPT     all  --  *      *     0.0.0.0/0    0.0.0.0/0      state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *     0.0.0.0/0    0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *     0.0.0.0/0    0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *     0.0.0.0/0    0.0.0.0/0      state NEW tcp dpt:22 
5        0     0 ACCEPT     tcp  --  *      *     0.0.0.0/0    0.0.0.0/0      tcp dpt:80 
6        0     0 REJECT     all  --  *      *     0.0.0.0/0    0.0.0.0/0      reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out   source       destination         
1        0     0 REJECT     all  --  *      *     0.0.0.0/0    0.0.0.0/0      reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out   source       destination

Nachfolgender Befehl, fügt folgende iptables-Regel dem iptables-Regelwerk nach der Position 6 hinzu, ohne das der Paketfilter angehalten werden muss:

  • -A INPUT -p tcp --dport 443 -j ACCEPT

und hier die Befehle:

# iptables -I INPUT 6 -p tcp --dport 443 -j ACCEPT

Ein erneute Abfrage des iptables-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out   source       destination         
1       70  5752 ACCEPT     all  --  *      *     0.0.0.0/0    0.0.0.0/0      state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *     0.0.0.0/0    0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *     0.0.0.0/0    0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *     0.0.0.0/0    0.0.0.0/0      state NEW tcp dpt:22 
5        0     0 ACCEPT     tcp  --  *      *     0.0.0.0/0    0.0.0.0/0      tcp dpt:80
6        0     0 ACCEPT     tcp  --  *      *     0.0.0.0/0    0.0.0.0/0      tcp dpt:443  
7        0     0 REJECT     all  --  *      *     0.0.0.0/0    0.0.0.0/0      reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out   source       destination         
1        0     0 REJECT     all  --  *      *     0.0.0.0/0    0.0.0.0/0      reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out   source       destination

Die neue Zeile ist an Position 6 (INPUT) zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):

...
6        0     0 ACCEPT     tcp  --  *      *     0.0.0.0/0    0.0.0.0/0      tcp dpt:443
...

Um diese iptables-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:

# /usr/sbin/iptables-save > /etc/sysconfig/iptables 

Installation

Zur Installation des Apache HTTP Server-Moduls mod_ssl muss nachfolgendes Paket

  • mod_ssl - ist im base-Repository von CentOS enthalten

installiert werden.

Mit nachfolgendem Befehl, wird das Pakete mod_ssl installiert:

# yum install mod_ssl
Loaded plugins: changelog, priorities
61 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package mod_ssl.x86_64 1:2.4.6-18.el7.centos will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package        Arch          Version                      Repository      Size
================================================================================
Installing:
 mod_ssl        x86_64        1:2.4.6-18.el7.centos        updates         97 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 97 k
Installed size: 219 k
Is this ok [y/d/N]: y
Downloading packages:
mod_ssl-2.4.6-18.el7.centos.x86_64.rpm                     |  97 kB   00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:mod_ssl-2.4.6-18.el7.centos.x86_64                         1/1
  Verifying  : 1:mod_ssl-2.4.6-18.el7.centos.x86_64                         1/1

Installed:
  mod_ssl.x86_64 1:2.4.6-18.el7.centos

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit dem Paket mod_ssl installiert wurden.

# rpm -qil mod_ssl
Name        : mod_ssl
Epoch       : 1
Version     : 2.4.6
Release     : 18.el7.centos
Architecture: x86_64
Install Date: Wed 26 Nov 2014 05:42:20 AM CET
Group       : System Environment/Daemons
Size        : 224652
License     : ASL 2.0
Signature   : RSA/SHA256, Wed 23 Jul 2014 05:21:47 PM CEST, Key ID 24c6a8a7f4a80eb5
Source RPM  : httpd-2.4.6-18.el7.centos.src.rpm
Build Date  : Wed 23 Jul 2014 04:49:10 PM CEST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://httpd.apache.org/
Summary     : SSL/TLS module for the Apache HTTP Server
Description :
The mod_ssl module provides strong cryptography for the Apache Web
server via the Secure Sockets Layer (SSL) and Transport Layer
Security (TLS) protocols.
/etc/httpd/conf.d/ssl.conf
/etc/httpd/conf.modules.d/00-ssl.conf
/usr/lib64/httpd/modules/mod_ssl.so
/usr/libexec/httpd-ssl-pass-dialog
/var/cache/httpd/ssl

Konfiguration

Die Konfiguration des Apache HTTP Server-Moduls mod_ssl wird primär in nachfolgenden Konfigurationsdateien durchgeführt:

  • /etc/httpd/conf.modules.d/00-ssl.conf
  • /etc/httpd/conf.d/ssl.conf

Zusätzlich wurden noch eine Schlüssel und das dazugehörige Zertifikat bei der Installation erstellt. Die Dateien befinden sich in nachfolgenden Verzeichnissen und tragen nachfolgende Namen:

  • /etc/pki/tls/private/localhost.key
  • /etc/pki/tls/certs/localhost.crt

/etc/httpd/conf.modules.d/00-ssl.conf

Die Konfigurationsdatei /etc/httpd/conf.modules.d/00-ssl.conf beinhaltet die Integration des mod_ssl in den Apache HTTP Server.

:!: HINWEIS - Hier werden aktuell KEINE Anpassungen vorgenommen, da nur das Laden des Apache HTTP Server-Moduls mod_ssl in dieser Konfigurationsdatei konfiguriert wird!

(komplette Konfigurationsdatei)

LoadModule ssl_module modules/mod_ssl.so

/etc/httpd/conf.d/ssl.conf

Nachfolgend soll die Konfigurationsdatei

Konfigurationsdatei Beschreibung
ssl.conf Konfiguration des Einsatzes von Verschlüsselung https.

entsprechend angepasst werden.

:!: HINWEIS - Die nachfolgenden Anpassungen sind individuell und vom jeweiligen Einsatzzweck abhängig und ggf. den persönlichen Bedürfnissen anzupassen!

Die Anpassungen werden mit einem vorangestellten Kommentar in der Form

# Tachtler
gekennzeichnet.

(komplette Konfigurationsdatei)

#
# When we also provide SSL we have to listen to the
# the HTTPS port in addition.
#
# Tachtler
# default: Listen 443 https
Listen 192.168.1.90:443 https
Listen 192.168.0.90:443 https
 
##
##  SSL Global Context
##
##  All SSL configuration in this context applies both to
##  the main server and all SSL-enabled virtual hosts.
##
 
#   Pass Phrase Dialog:
#   Configure the pass phrase gathering process.
#   The filtering dialog program (`builtin' is a internal
#   terminal dialog) has to provide the pass phrase on stdout.
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
 
#   Inter-Process Session Cache:
#   Configure the SSL Session Cache: First the mechanism
#   to use and second the expiring timeout (in seconds).
SSLSessionCache         shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout  300
 
#   Pseudo Random Number Generator (PRNG):
#   Configure one or more sources to seed the PRNG of the
#   SSL library. The seed data should be of good random quality.
#   WARNING! On some platforms /dev/random blocks if not enough entropy
#   is available. This means you then cannot use the /dev/random device
#   because it would lead to very long connection times (as long as
#   it requires to make more entropy available). But usually those
#   platforms additionally provide a /dev/urandom device which doesn't
#   block. So, if available, use this one instead. Read the mod_ssl User
#   Manual for more details.
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
#SSLRandomSeed startup file:/dev/random  512
#SSLRandomSeed connect file:/dev/random  512
#SSLRandomSeed connect file:/dev/urandom 512
 
#
# Use "SSLCryptoDevice" to enable any supported hardware
# accelerators. Use "openssl engine -v" to list supported
# engine names.  NOTE: If you enable an accelerator and the
# server does not start, consult the error logs and ensure
# your accelerator is functioning properly.
#
SSLCryptoDevice builtin
#SSLCryptoDevice ubsec
 
##
## SSL Virtual Host Context
##
 
<VirtualHost _default_:443>
 
# General setup for the virtual host, inherited from global configuration
#DocumentRoot "/var/www/html"
#ServerName www.example.com:443
 
# Use separate log files for the SSL virtual host; note that LogLevel
# is not inherited from httpd.conf.
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
 
#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on
 
#   SSL Protocol support:
# List the enable protocol levels with which clients will be able to
# connect.  Disable SSLv2 access by default:
# Tachtler
# default: SSLProtocol all -SSLv2
SSLProtocol all -SSLv2 -SSLv3
 
#   SSL Cipher Suite:
#   List the ciphers that the client is permitted to negotiate.
#   See the mod_ssl documentation for a complete list.
# Tachtler
# default: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL:!MD5:!DSS
 
#   Speed-optimized SSL Cipher configuration:
#   If speed is your main concern (on busy HTTPS servers e.g.),
#   you might want to force clients to specific, performance
#   optimized ciphers. In this case, prepend those ciphers
#   to the SSLCipherSuite list, and enable SSLHonorCipherOrder.
#   Caveat: by giving precedence to RC4-SHA and AES128-SHA
#   (as in the example below), most connections will no longer
#   have perfect forward secrecy - if the server's key is
#   compromised, captures of past or future traffic must be
#   considered compromised, too.
#SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5
# Tachtler
# default: #SSLHonorCipherOrder on
SSLHonorCipherOrder on
 
#   Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate.  If
# the certificate is encrypted, then you will be prompted for a
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
 
#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
 
#   Server Certificate Chain:
#   Point SSLCertificateChainFile at a file containing the
#   concatenation of PEM encoded CA certificates which form the
#   certificate chain for the server certificate. Alternatively
#   the referenced file can be the same as SSLCertificateFile
#   when the CA certificates are directly appended to the server
#   certificate for convinience.
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
 
#   Certificate Authority (CA):
#   Set the CA certificate verification path where to find CA
#   certificates for client authentication or alternatively one
#   huge file containing all of them (file must be PEM encoded)
#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
 
#   Client Authentication (Type):
#   Client certificate verification type and depth.  Types are
#   none, optional, require and optional_no_ca.  Depth is a
#   number which specifies how deeply to verify the certificate
#   issuer chain before deciding the certificate is not valid.
#SSLVerifyClient require
#SSLVerifyDepth  10
 
#   Access Control:
#   With SSLRequire you can do per-directory access control based
#   on arbitrary complex boolean expressions containing server
#   variable checks and other lookup directives.  The syntax is a
#   mixture between C and Perl.  See the mod_ssl documentation
#   for more details.
#<Location />
#SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
#            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
#            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
#            and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
#            and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
#           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#</Location>
 
#   SSL Engine Options:
#   Set various options for the SSL engine.
#   o FakeBasicAuth:
#     Translate the client X.509 into a Basic Authorisation.  This means that
#     the standard Auth/DBMAuth methods can be used for access control.  The
#     user name is the `one line' version of the client's X.509 certificate.
#     Note that no password is obtained from the user. Every entry in the user
#     file needs this password: `xxj31ZMTZzkVA'.
#   o ExportCertData:
#     This exports two additional environment variables: SSL_CLIENT_CERT and
#     SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
#     server (always existing) and the client (only existing when client
#     authentication is used). This can be used to import the certificates
#     into CGI scripts.
#   o StdEnvVars:
#     This exports the standard SSL/TLS related `SSL_*' environment variables.
#     Per default this exportation is switched off for performance reasons,
#     because the extraction step is an expensive operation and is usually
#     useless for serving static content. So one usually enables the
#     exportation for CGI and SSI requests only.
#   o StrictRequire:
#     This denies access when "SSLRequireSSL" or "SSLRequire" applied even
#     under a "Satisfy any" situation, i.e. when it applies access is denied
#     and no other module can change it.
#   o OptRenegotiate:
#     This enables optimized SSL connection renegotiation handling when SSL
#     directives are used in per-directory context.
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
 
#   SSL Protocol Adjustments:
#   The safe and default but still SSL/TLS standard compliant shutdown
#   approach is that mod_ssl sends the close notify alert but doesn't wait for
#   the close notify alert from client. When you need a different shutdown
#   approach you can use one of the following variables:
#   o ssl-unclean-shutdown:
#     This forces an unclean shutdown when the connection is closed, i.e. no
#     SSL close notify alert is send or allowed to received.  This violates
#     the SSL/TLS standard but is needed for some brain-dead browsers. Use
#     this when you receive I/O errors because of the standard approach where
#     mod_ssl sends the close notify alert.
#   o ssl-accurate-shutdown:
#     This forces an accurate shutdown when the connection is closed, i.e. a
#     SSL close notify alert is send and mod_ssl waits for the close notify
#     alert of the client. This is 100% SSL/TLS standard compliant, but in
#     practice often causes hanging connections with brain-dead browsers. Use
#     this only for browsers where you know that their SSL implementation
#     works correctly.
#   Notice: Most problems of broken clients are also related to the HTTP
#   keep-alive facility, so you usually additionally want to disable
#   keep-alive for those clients, too. Use variable "nokeepalive" for this.
#   Similarly, one has to force some clients to use HTTP/1.0 to workaround
#   their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
#   "force-response-1.0" for this.
BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
 
#   Per-Server Logging:
#   The home of a custom SSL log file. Use this when you want a
#   compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
 
</VirtualHost>

Erklärungen:

Listen

Setzen der IP-Adressen und des jeweiligen Ports, auf denen der Apache HTTP Server lauschen soll. Eine Mehrfachdefinition ist, wie dargestellt, ebenfalls möglich!

# Tachtler
# default: Listen 443 https
Listen 192.168.1.90:443 https
Listen 192.168.0.90:443 https

SSLProtocol

Angabe, welche der SSL-Protokoll-Typen unterstützt werden sollen.

Siehe auch den externen Link: (SSL) - http://httpd.apache.org/docs/current/mod/mod_ssl.html#sslprotocol
Siehe auch den externen Link: (Poodle) - https://access.redhat.com/solutions/1232413

# Tachtler
# default: SSLProtocol all -SSLv2
SSLProtocol all -SSLv2 -SSLv3

SSLCipherSuite

Angabe, welche Verschlüsselungs-Typen unterstützt werden sollen.

Siehe auch den externen Link: http://httpd.apache.org/docs/current/mod/mod_ssl.html#sslciphersuite

# Tachtler
# default: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL:!MD5:!DSS

SSLHonorCipherOrder

Bestimmt, das die Reihenfolge, in der die unterstützten Verschlüsselungs-Typen aufgeführt sind, bei der Verwendung eingehalten wird. Zuerst genannte werden vor den nachfolgenden angezogen.

# Tachtler
# default: #SSLHonorCipherOrder on
SSLHonorCipherOrder on

Neustart

Bevor weitere Konfigurationsschritte erfolgen, sollte einem Neustart nichts im Wege stehen:

# systemctl restart httpd.service

:!: HINWEIS - Es erfolgen keine weiteren Ausgaben, wenn der Start erfolgreich war !

Neustart Überprüfung

Ob die Verbindung vom Browser zum Apache HTTP Server nun auch verschlüsselt erfolgt, kann durch nachfolgende Befehle und URL-Aufrufe überprüft werden.

Nachfolgender Befehl listet die IP-Adressen und die Ports auf, auf denen der Apache HTTP Server lauscht und Anfragen beantwortet:

# netstat -tulpen | grep httpd
tcp        0      0 192.168.0.90:443       0.0.0.0:*         LISTEN      0       111932    16039/httpd         
tcp        0      0 192.168.1.90:443       0.0.0.0:*         LISTEN      0       111930    16039/httpd         
tcp        0      0 192.168.1.90:80        0.0.0.0:*         LISTEN      0       111924    16039/httpd         
tcp        0      0 192.168.0.90:80        0.0.0.0:*         LISTEN      0       111922    16039/httpd

Nachfolgender Befehl gibt die LOG-Meldungen aus, welche den Neustart des Apache HTTP Server protokolliert haben und sind in der LOG-Datei - /var/log/httpd/error_log - zu finden und sollten in etwa wie nachfolgende Einträge aussehen:

[Wed Nov 26 06:56:59.768849 2014] [mpm_prefork:notice] [pid 15513] AH00170: caught SIGWINCH, shutting down gracefully
[Wed Nov 26 06:57:00.865474 2014] [mpm_prefork:notice] [pid 16039] AH00163: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips configured -- resuming normal operations
[Wed Nov 26 06:57:00.865505 2014] [core:notice] [pid 16039] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

Konfiguration überprüfen

In oben gezeigtem Beispiel in der Konfigurationsdatei

  • /etc/httpd/conf.d/ssl.conf

wurde ein Self-signed-certificate hinterlegt, welches in nachfolgende Konfigurationszeilen konfiguriert wurde:

(nur relevanter Ausschnitt)

...
#   Server Certificate:
#   Point SSLCertificateFile at a PEM encoded certificate.  If
#   the certificate is encrypted, then you will be prompted for a
#   pass phrase.  Note that a kill -HUP will prompt again.  A new
#   certificate can be generated using the genkey(1) command.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
 
#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
...

Mit nachfolgenden Seitenaufrufen kann überprüft werden, ob die Änderungen durch die Einbindung der zusätzlichen Konfigurationsdateien erfolgreich war:

Der Aufruf der URL:

sollte nachfolgende Anzeige zum Vorschein bringen:

CentOS-7 - Apache - mod_ssl -Self-signet-certificate - Fehler - Seite 1

:!: HINWEIS - Die Fehlermeldung ist normal, da hier ein selbst erstelltes Zertifikat, welches auch noch einen anderen CN (Common Name) als die aufgerufene URL hat, verwendet wird!

Durch anklicken der Fehlermeldung im Bereich [I Understand the Risks], sollte nachfolgende Seite zur Anzeige kommen:

CentOS-7 - Apache - mod_ssl -Self-signet-certificate - Fehler - Seite 2

Hier muss der Aufruf der URL dann noch einmal bestätigt werden, in dem die Schaltfläche [Add Exception…] angeklickt wird und nachfolgendes Dialog-Fenster mit weiteren Informationen, zum präsentiertem Zertifikat, zum Vorschein kommen.

CentOS-7 - Apache - mod_ssl -Self-signet-certificate - Fehler - Bestätigungs-Dialog-Fenster

Durch anklicken der Schaltfläche [Confirm Security Exception] wird bestätigt, das die Seite tatsächlich angezeigt werden soll, und nachfolgende Seite sollte dann abschließend auch angezeigt werden:

CentOS-7 - Apache - mod_ssl -Self-signet-certificate - /server-status

:!: HINWEIS - In vorangestelltem Bild ist zu erkennen, dass der Aufruf der Seite https://www.tachtler.net/server-status auf Port 443 erfolgt ist und damit auch verschlüsselt durchgeführt wurde.

Self-signed-certificate

Nachfolgend soll beschrieben werden, wie ein eigenes Self-signed-certificate einfach erstellt werden kann.

Schlüssel erzeugen

Nachfolgender Befehl erzeugt dazu zuerst einmal einen Schlüssel, wodurch nur mit diesem, das Zertifikat verwendbar wird.

# openssl genrsa -out /etc/pki/tls/private/tachtler.net.key 2048
Generating RSA private key, 2048 bit long modulus
.......................................................+++
.......................................+++
e is 65537 (0x10001)
* Es wird die Datei /etc/pki/tls/private/tachtler.net.key erzeugt!

:!: HINWEIS - Der Schlüssel kann auch eine Passphrase haben, jedoch kann dann kein automatischer Start des Apache HTTP Server mehr erfolgen. Es sei denn, auch die Passphrase ist in einer Datei auf dem Server hinterlegt und diese wird dann beim Starten des Apache HTTP Server eingelesen. Dieses vorgehen ist jedoch nur Sinnvoll, wenn der Apache HTTP Server durch einen Benutzer, ohne - root-Rechte gestartet wird!

CSR erzeugen

Als nächster Schritt wird ein sogenannter „Zertifikatsantrag“ (CSR) generiert. Der Zertifikatsantrag (CSR) enthält den Domainnamen, die e-Mail-Adresse usw. Diese Dateien werden dann an die Zertifizierungsstelle gesendet und von dieser wird dann das Zertifikat ausgestellt. Mit nachfolgendem Befehl wird die Erstellung des Zertifikatsantrags (CSR) durchgeführt:

:!: WICHTIG - Nicht benötigte Angaben werden mit Eingabe eines Punktes [.] übersprungen, es sollte KEIN Passwort verwendet werden!

# openssl req -new -key /etc/pki/tls/private/tachtler.net.key -out /etc/pki/tls/certs/tachtler.net.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:DE
State or Province Name (full name) []:Bayern (Bavaria)
Locality Name (eg, city) [Default City]:Muenchen (Munich)
Organization Name (eg, company) [Default Company Ltd]:Klaus Tachtler
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server's hostname) []:www.tachtler.net
Email Address []:webmaster@tachtler.net

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:.
* Es wird die Datei /etc/pki/tls/certs/tachtler.net.csr erzeugt!

Mit folgendem Befehl kann festgestellt werden, ob alle Angaben im Zertifikatsantrag (CSR) korrekt sind:

# openssl req -noout -text -in /etc/pki/tls/certs/tachtler.net.csr 
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=DE, ST=Bayern (Bavaria), L=Muenchen (Munich), O=Klaus Tachtler, CN=www.tachtler.net/emailAddress=webmaster@tachtler.net
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:a0:f8:79:f5:ac:11:07:23:a9:6e:17:77:16:40:
                    c3:e8:62:30:b6:21:1b:72:b1:ca:23:85:2d:3a:67:
                    2b:21:6e:ee:96:cc:62:f3:01:a3:17:87:14:c9:98:
                    d8:2e:d6:d6:d4:2b:06:a9:8b:9f:d6:e2:14:80:32:
                    e3:c7:da:af:6c:b7:9d:32:52:20:39:ed:75:0e:fa:
                    3e:12:5a:27:e4:71:b8:51:4f:2a:96:55:8e:f6:e4:
                    8a:07:5b:28:58:ae:4e:17:e7:07:5b:d3:29:30:eb:
                    bd:15:15:ff:78:76:74:d1:2e:ee:5f:bc:a7:fd:1a:
                    b9:dd:e5:a3:3a:27:89:c2:36:30:c0:6b:4d:21:bc:
                    41:8f:ce:61:6e:06:70:07:66:0b:61:f5:91:f6:71:
                    94:3e:c3:7e:1b:5f:ef:06:bf:15:d9:d3:a6:7a:38:
                    76:c6:d7:e4:00:92:08:9d:b2:bc:7a:32:da:57:02:
                    b5:0d:5e:25:73:0b:40:83:e9:03:b9:5c:fa:58:b1:
                    cb:e5:d7:61:7f:12:de:5c:49:b4:d0:5d:bc:8c:b1:
                    62:01:86:5e:6c:43:5c:3d:62:68:a7:1c:bb:f8:1a:
                    8f:9d:6e:ce:2b:d7:36:18:b5:6e:a6:3e:cf:94:72:
                    57:0e:55:7f:c2:dd:43:ab:ea:47:1e:2b:30:1d:97:
                    81:57
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha256WithRSAEncryption
         48:87:02:ee:8f:f9:7b:17:11:d8:bf:ed:81:c4:1c:e4:3c:ec:
         4d:b7:a9:77:19:5c:92:aa:98:67:23:1c:d1:43:ce:3b:1d:e8:
         21:1d:f2:76:52:0d:25:75:28:38:d6:87:71:34:ce:d9:7c:c0:
         66:b9:d5:ba:08:85:53:61:5a:c2:58:52:02:0a:6e:42:22:61:
         3a:e5:e3:8e:88:f3:68:93:64:b0:ca:fc:69:e7:7a:27:3c:f6:
         89:ee:07:d2:cd:a7:21:5f:bf:38:7c:4e:a2:7e:84:f9:c8:60:
         9a:9c:ce:d0:19:93:22:76:fb:4b:1e:65:a2:8d:ab:b7:8d:ea:
         da:7a:fa:81:a8:88:d3:f8:31:88:b0:ea:90:92:0e:94:54:7c:
         54:26:a7:e9:a3:63:95:a3:e4:00:79:92:fc:f6:e4:3e:82:74:
         55:9d:3d:3a:75:04:5b:77:db:8d:e7:43:b5:b5:bf:fb:e6:60:
         5f:77:ce:a8:1f:a2:d1:65:5a:2d:f5:11:02:51:91:42:03:5d:
         a4:f0:b6:67:05:b7:f8:56:34:8a:84:45:1e:49:c5:19:59:6e:
         87:47:63:ac:88:03:6c:dd:6c:dd:b8:d8:f4:72:57:f6:c8:5f:
         40:62:c7:7e:32:3b:cb:96:88:6d:4e:b9:15:b2:1d:55:be:a1:
         86:c0:0b:94

CRT erzeugen

Zum Abschluß wird mit folgendem Befehl ein Self-Signed-Certificate erstellt, welches für 365 Tage gültig ist:

# openssl x509 -req -days 365 -in /etc/pki/tls/certs/tachtler.net.csr -signkey /etc/pki/tls/private/tachtler.net.key -out /etc/pki/tls/certs/tachtler.net.crt
Signature ok
subject=/C=DE/ST=Bayern (Bavaria)/L=Muenchen (Munich)/O=Klaus Tachtler/CN=www.tachtler.net/emailAddress=webmaster@tachtler.net
Getting Private key
* Es wird die Datei /etc/pki/tls/certs/tachtler.net.crt erzeugt!

Mit folgendem Befehl kann festgestellt werden, ob alle Angaben im Self-Signed-Certificate (CRT) korrekt sind und dies auch korrekt erstellt wurde:

# openssl x509 -noout -text -in /etc/pki/tls/certs/tachtler.net.crt 
Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number: 13350625740743118842 (0xb946f360662e0ffa)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=DE, ST=Bayern (Bavaria), L=Muenchen (Munich), O=Klaus Tachtler, CN=www.tachtler.net/emailAddress=webmaster@tachtler.net
        Validity
            Not Before: Nov 26 10:06:21 2014 GMT
            Not After : Nov 26 10:06:21 2015 GMT
        Subject: C=DE, ST=Bayern (Bavaria), L=Muenchen (Munich), O=Klaus Tachtler, CN=www.tachtler.net/emailAddress=webmaster@tachtler.net
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:a0:f8:79:f5:ac:11:07:23:a9:6e:17:77:16:40:
                    c3:e8:62:30:b6:21:1b:72:b1:ca:23:85:2d:3a:67:
                    2b:21:6e:ee:96:cc:62:f3:01:a3:17:87:14:c9:98:
                    d8:2e:d6:d6:d4:2b:06:a9:8b:9f:d6:e2:14:80:32:
                    e3:c7:da:af:6c:b7:9d:32:52:20:39:ed:75:0e:fa:
                    3e:12:5a:27:e4:71:b8:51:4f:2a:96:55:8e:f6:e4:
                    8a:07:5b:28:58:ae:4e:17:e7:07:5b:d3:29:30:eb:
                    bd:15:15:ff:78:76:74:d1:2e:ee:5f:bc:a7:fd:1a:
                    b9:dd:e5:a3:3a:27:89:c2:36:30:c0:6b:4d:21:bc:
                    41:8f:ce:61:6e:06:70:07:66:0b:61:f5:91:f6:71:
                    94:3e:c3:7e:1b:5f:ef:06:bf:15:d9:d3:a6:7a:38:
                    76:c6:d7:e4:00:92:08:9d:b2:bc:7a:32:da:57:02:
                    b5:0d:5e:25:73:0b:40:83:e9:03:b9:5c:fa:58:b1:
                    cb:e5:d7:61:7f:12:de:5c:49:b4:d0:5d:bc:8c:b1:
                    62:01:86:5e:6c:43:5c:3d:62:68:a7:1c:bb:f8:1a:
                    8f:9d:6e:ce:2b:d7:36:18:b5:6e:a6:3e:cf:94:72:
                    57:0e:55:7f:c2:dd:43:ab:ea:47:1e:2b:30:1d:97:
                    81:57
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha1WithRSAEncryption
         82:a1:b2:0c:3a:db:f7:38:b0:a2:26:8a:84:b4:70:4c:2c:68:
         dc:13:f3:c2:98:c2:b9:03:91:a1:63:1c:02:4a:ae:3c:3c:e5:
         bb:84:ff:64:f2:22:d4:3a:f7:a8:15:fd:3d:fa:f0:0c:b1:1f:
         91:84:70:31:66:e1:c8:9b:e7:a7:a9:2b:5a:10:66:2e:73:7b:
         74:fd:ad:af:9f:9d:5d:ca:2b:b0:53:13:e2:b1:ab:dd:4b:b3:
         b5:8e:16:90:7d:c9:b2:00:a9:ba:dd:d1:60:99:de:0e:84:48:
         13:ea:00:57:df:72:e5:a3:9a:c5:c8:ab:2b:33:c3:0d:b5:2d:
         28:9e:85:42:9f:40:10:b9:24:29:c5:c0:3f:59:0b:bc:c6:fb:
         c6:17:4d:22:a9:9f:15:9a:d0:04:27:9b:81:45:0a:b2:03:c8:
         85:ae:ad:38:88:2f:24:8d:73:eb:b6:6e:37:7c:44:a8:b4:16:
         e4:7b:9e:7e:03:82:76:87:f4:8b:dc:b1:17:5f:43:4d:98:1e:
         bd:41:f0:6f:bf:07:a3:cf:f9:6b:17:16:65:90:10:a4:46:8d:
         15:a6:7d:9c:00:8c:05:1b:26:53:26:55:de:13:ee:49:68:c5:
         c5:45:d5:60:41:9b:3c:c3:fa:66:2b:a6:59:2d:39:af:2d:6f:
         c5:02:16:42

Dateirechte

Die Installation des gerade erzeugten Self-Signed-Certificate und die Vergabe der richtigen Dateirechte, sind der nächste Schritt zum erfolgreichen Einsatz.

Mit nachfolgenden Befehlen werden die Dateirechte für die Dateien

  • /etc/pki/tls/private/tachtler.net.key und
  • /etc/pki/tls/certs/tachtler.net.crt

noch wie folgt gesetzte werden:

Die Dateirechte für /etc/pki/tls/private/tachtler.net.key, werden mit folgendem Befehl gesetzt:

# chmod 400 /etc/pki/tls/private/tachtler.net.key

Die Dateirechte für /etc/pki/tls/certs/tachtler.net.crt, werden mit folgendem Befehl gesetzt:

# chmod 400 /etc/pki/tls/certs/tachtler.net.crt

CRT einbinden

Anschließend muss nun noch das erzeugte Drittanbieter Zertifikat in den Apache HTTP Server durch anpassen der Konfigurationsdatei

  • /etc/httpd/conf.d/ssl.conf

durch nachfolgend gezeigte Änderungen, bekannt gegeben werden:

(Nur relevanter Ausschnitt')

...
#   Server Certificate:
#   Point SSLCertificateFile at a PEM encoded certificate.  If
#   the certificate is encrypted, then you will be prompted for a
#   pass phrase.  Note that a kill -HUP will prompt again.  A new
#   certificate can be generated using the genkey(1) command.
# Tachtler
# default: SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/pki/tls/certs/tachtler.net.crt
 
#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
# Tachtler
# default: SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/pki/tls/private/tachtler.net.key
...

Neustart

nach den vorangegangenen Konfigurationsschritten, sollte einem Neustart nichts im Wege stehen:

# systemctl restart httpd.service

:!: HINWEIS - Es erfolgen keine weiteren Ausgaben, wenn der Start erfolgreich war !

Überprüfung

In oben gezeigtem Beispiel in der Konfigurationsdatei

  • /etc/httpd/conf.d/ssl.conf

wurde ein eigenes Self-signed-certificate hinterlegt, welches in nachfolgende Konfigurationszeilen konfiguriert wurde:

(nur relevanter Ausschnitt)

...
#   Server Certificate:
#   Point SSLCertificateFile at a PEM encoded certificate.  If
#   the certificate is encrypted, then you will be prompted for a
#   pass phrase.  Note that a kill -HUP will prompt again.  A new
#   certificate can be generated using the genkey(1) command.
# Tachtler
# default: SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/pki/tls/certs/tachtler.net.crt
 
#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
# Tachtler
# default: SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/pki/tls/private/tachtler.net.key
...

Mit nachfolgenden Seitenaufrufen kann überprüft werden, ob die Änderungen durch die Einbindung der zusätzlichen Konfigurationsdateien erfolgreich war:

Der Aufruf der URL:

sollte nachfolgende Anzeige zum Vorschein bringen:

CentOS-7 - Apache - mod_ssl -Self-signet-certificate - Fehler - Seite 1

:!: HINWEIS - Die Fehlermeldung ist normal, da hier ein selbst erstelltes Zertifikat, welches auch noch einen anderen CN (Common Name) als die aufgerufene URL hat, verwendet wird!

Durch anklicken der Fehlermeldung im Bereich [I Understand the Risks], sollte nachfolgende Seite zur Anzeige kommen:

CentOS-7 - Apache - mod_ssl -Self-signet-certificate - Fehler - Seite 2

Hier muss der Aufruf der URL dann noch einmal bestätigt werden, in dem die Schaltfläche [Add Exception…] angeklickt wird und nachfolgendes Dialog-Fenster mit weiteren Informationen, zum präsentiertem Zertifikat, zum Vorschein kommen.

CentOS-7 - Apache - mod_ssl -Self-signet-certificate - Fehler - Bestätigungs-Dialog-Fenster - www.tachtler.net

Durch anklicken der Schaltfläche [View] kann das eigene Self-signed-certificate in einem weiteren Dialog-Fenster zur Anzeige gebracht werden und durch anklicken der Schaltfäche [Close] wieder geschlossen werden:

CentOS-7 - Apache - mod_ssl -Self-signet-certificate - Fehler - Bestätigungs-Dialog-Fenster - www.tachtler.net - Self-signed-certificate - Anzeige

Durch anklicken der Schaltfläche [Confirm Security Exception] wird bestätigt, das die Seite tatsächlich angezeigt werden soll, und nachfolgende Seite sollte dann abschließend auch angezeigt werden:

CentOS-7 - Apache - mod_ssl -Self-signet-certificate - /server-status

:!: HINWEIS - In vorangestelltem Bild ist zu erkennen, dass der Aufruf der Seite https://www.tachtler.net/server-status auf Port 443 erfolgt ist und damit auch verschlüsselt durchgeführt wurde.

Drittanbieter Zertifikate

Zur Einbindung von Zertifikaten von offiziellen Zertifikats Autoritäten, bei denen die sogenannten ROOT-Zertifikate bereits in den Browsern importiert und vorhanden sind, oder wie in nachfolgendem Fall von

in den Browser importiert werden können, sind nachfolgende Schritte notwendig.

Unter diesen Links erhalten Sie mehr Informationen zu

Der Vorteil von CACert gegenüber kostenpflichtigen Zertifikaten von Drittanbietern ist natürlich die kostenlose Bereitstellung von Zertifikaten, auch sogenannten Wildcard-Zertifikaten.

Der Nachteil ist, das die sogenannten ROOT-Zertifikate erst in den entsprechenden Browser manuell importiert werden müssen!

:!: WICHTIG - Eine Registrierung/kostenlose Mitgliedschaft bei CACert ist erforderlich!

ROOT-Zertifikate importieren

Die ROOT-Zertifikate von CACert, können unter nachfolgendem externen Link heruntergeladen und importiert werden:

Nach dem erfolgreichen Importieren der ROOT-Zertifikate, es sollten

  • Klasse 1 PKI Schlüssel
  • Klasse 3 PKI Schlüssel

je nach Betriebssystem und Browser entsprechend importiert werden.

Nachfolgend wird am Browser Mozilla Firefox dargestellt wie die beiden ROOT-Zertifikate importiert werden können.

Ausgehend davon, das die ROOT-Zeritifkate bereits heruntergeladen wurden und hier als Beispiel im Verzeichnis - /tmp gespeichert wurden.

Zuerst wird unter dem Browser https://www.mozilla.org/de/firefox/ der Dialog mit den [Einstellungen] geöffnet und auf den [Reiter: Advanced] und den [Unterreiter: Certificates] gewechselt, wie nachfolgende Bildschirmkopie zeigt:

Browser - Firefox - Zertifikat importieren - Schritt 1

Anschließend sollte dann auf die Schaltfläche [View Certificates] geklickt werden, damit sich nachfolgender Dialog öffnet und der [Reiter: Authorities] ausgewählt sein sollte:

Browser - Firefox - Zertifikat importieren - Schritt 2

Durch anklicken der Schaltfläche [Import], kann dann im sich öffnenden Dialog-Fenster eine Zertifikatsdatei, hier /tmp/root.crt ausgewählt werden:

Browser - Firefox - Zertifikat importieren - Schritt 3

Durch drücken der Schaltfläche [Open] wird dann nachfolgendes Dialog-Fenster angezeigt, in dem der Rahmen festgelegt werden kann, in welchem Umfang dem Zertifikat vertraut wird. Nachfolgend wurden alle Haken entsprechend wie nachfolgend beschrieben gesetzt:

Browser - Firefox - Zertifikat importieren - Schritt 4

Haken Bezeichnung
Trust this CA to identify websites.
Trust this CA to identify email users.
Trust this CA to identify software developers.

Zum Abschluss und zum tatsächlichen Import muss dann die Schaltfläche [OK] angeklickt werden.

:!: WICHTIG - Die ist auch für das zweite Zertifikat - Klasse 3 PKI Schlüssel durchzuführen!

Durch anklicken der Schaltfläche [Import], kann dann im sich öffnenden Dialog-Fenster eine Zertifikatsdatei, hier /tmp/class3.crt ausgewählt werden:

Browser - Firefox - Zertifikat importieren - Schritt 3.1

Durch drücken der Schaltfläche [Open] wird dann nachfolgendes Dialog-Fenster angezeigt, in dem der Rahmen festgelegt werden kann, in welchem Umfang dem Zertifikat vertraut wird. Nachfolgend wurden alle Haken entsprechend wie nachfolgend beschrieben gesetzt:

Browser - Firefox - Zertifikat importieren - Schritt 4.1

Haken Bezeichnung
Trust this CA to identify websites.
Trust this CA to identify email users.
Trust this CA to identify software developers.

Zum Abschluss und zum tatsächlichen Import muss dann die Schaltfläche [OK] angeklickt werden.

Anschließend kann dann in der Liste der importierten Zertifikate überprüft werden ob der jeweilig Importvorgang erfolgreich war und es sollte eine Anzeige wie die nachfolgende zur Anzeige kommen:

Browser - Firefox - Zertifikat importieren - Schritt 5

Schlüssel erzeugen

Nachfolgender Befehl erzeugt dazu zuerst einmal einen Schlüssel, wodurch nur mit diesem, das Zertifikat verwendbar wird.

# openssl genrsa -out /etc/pki/tls/private/tachtler.net.key 2048
Generating RSA private key, 2048 bit long modulus
.......................................................+++
.......................................+++
e is 65537 (0x10001)
* Es wird die Datei /etc/pki/tls/private/tachtler.net.key erzeugt!

:!: HINWEIS - Der Schlüssel kann auch eine Passphrase haben, jedoch kann dann kein automatischer Start des Apache HTTP Server mehr erfolgen. Es sei denn, auch die Passphrase ist in einer Datei auf dem Server hinterlegt und diese wird dann beim Starten des Apache HTTP Server eingelesen. Dieses vorgehen ist jedoch nur Sinnvoll, wenn der Apache HTTP Server durch einen Benutzer, ohne - root-Rechte gestartet wird!

CSR erzeugen

Als nächster Schritt wird ein sogenannter „Zertifikatsantrag“ (CSR) generiert. Der Zertifikatsantrag (CSR) enthält den Domainnamen, die e-Mail-Adresse usw. Diese Dateien werden dann an die Zertifizierungsstelle gesendet und von dieser wird dann das Zertifikat ausgestellt. Mit nachfolgendem Befehl wird die Erstellung des Zertifikatsantrags (CSR) durchgeführt:

:!: WICHTIG - Nicht benötigte Angaben werden mit Eingabe eines Punktes [.] übersprungen, es sollte KEIN Passwort verwendet werden!

# openssl req -new -key /etc/pki/tls/private/tachtler.net.key -out /etc/pki/tls/certs/tachtler.net.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:DE
State or Province Name (full name) []:Bayern (Bavaria)
Locality Name (eg, city) [Default City]:Muenchen (Munich)
Organization Name (eg, company) [Default Company Ltd]:Klaus Tachtler
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server's hostname) []:*.tachtler.net
Email Address []:webmaster@tachtler.net

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:.
* Es wird die Datei /etc/pki/tls/certs/tachtler.net.csr erzeugt!

Mit folgendem Befehl kann festgestellt werden, ob alle Angaben im Zertifikatsantrag (CSR) korrekt sind:

# openssl req -noout -text -in /etc/pki/tls/certs/tachtler.net.csr 
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=DE, ST=Bayern (Bavaria), L=Muenchen (Munich), O=Klaus Tachtler, CN=*.tachtler.net/emailAddress=webmaster@tachtler.net
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:a0:f8:79:f5:ac:11:07:23:a9:6e:17:77:16:40:
                    c3:e8:62:30:b6:21:1b:72:b1:ca:23:85:2d:3a:67:
                    2b:21:6e:ee:96:cc:62:f3:01:a3:17:87:14:c9:98:
                    d8:2e:d6:d6:d4:2b:06:a9:8b:9f:d6:e2:14:80:32:
                    e3:c7:da:af:6c:b7:9d:32:52:20:39:ed:75:0e:fa:
                    3e:12:5a:27:e4:71:b8:51:4f:2a:96:55:8e:f6:e4:
                    8a:07:5b:28:58:ae:4e:17:e7:07:5b:d3:29:30:eb:
                    bd:15:15:ff:78:76:74:d1:2e:ee:5f:bc:a7:fd:1a:
                    b9:dd:e5:a3:3a:27:89:c2:36:30:c0:6b:4d:21:bc:
                    41:8f:ce:61:6e:06:70:07:66:0b:61:f5:91:f6:71:
                    94:3e:c3:7e:1b:5f:ef:06:bf:15:d9:d3:a6:7a:38:
                    76:c6:d7:e4:00:92:08:9d:b2:bc:7a:32:da:57:02:
                    b5:0d:5e:25:73:0b:40:83:e9:03:b9:5c:fa:58:b1:
                    cb:e5:d7:61:7f:12:de:5c:49:b4:d0:5d:bc:8c:b1:
                    62:01:86:5e:6c:43:5c:3d:62:68:a7:1c:bb:f8:1a:
                    8f:9d:6e:ce:2b:d7:36:18:b5:6e:a6:3e:cf:94:72:
                    57:0e:55:7f:c2:dd:43:ab:ea:47:1e:2b:30:1d:97:
                    81:57
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha256WithRSAEncryption
         48:87:02:ee:8f:f9:7b:17:11:d8:bf:ed:81:c4:1c:e4:3c:ec:
         4d:b7:a9:77:19:5c:92:aa:98:67:23:1c:d1:43:ce:3b:1d:e8:
         21:1d:f2:76:52:0d:25:75:28:38:d6:87:71:34:ce:d9:7c:c0:
         66:b9:d5:ba:08:85:53:61:5a:c2:58:52:02:0a:6e:42:22:61:
         3a:e5:e3:8e:88:f3:68:93:64:b0:ca:fc:69:e7:7a:27:3c:f6:
         89:ee:07:d2:cd:a7:21:5f:bf:38:7c:4e:a2:7e:84:f9:c8:60:
         9a:9c:ce:d0:19:93:22:76:fb:4b:1e:65:a2:8d:ab:b7:8d:ea:
         da:7a:fa:81:a8:88:d3:f8:31:88:b0:ea:90:92:0e:94:54:7c:
         54:26:a7:e9:a3:63:95:a3:e4:00:79:92:fc:f6:e4:3e:82:74:
         55:9d:3d:3a:75:04:5b:77:db:8d:e7:43:b5:b5:bf:fb:e6:60:
         5f:77:ce:a8:1f:a2:d1:65:5a:2d:f5:11:02:51:91:42:03:5d:
         a4:f0:b6:67:05:b7:f8:56:34:8a:84:45:1e:49:c5:19:59:6e:
         87:47:63:ac:88:03:6c:dd:6c:dd:b8:d8:f4:72:57:f6:c8:5f:
         40:62:c7:7e:32:3b:cb:96:88:6d:4e:b9:15:b2:1d:55:be:a1:
         86:c0:0b:94

CRT erzeugen

:!: WICHTIG - Das Zertifikat wird nun durch Hochladen des Zertifikatsantrag (CSR) auf die Homepage von CACert erzeugt und kann dort entsprechen dann heruntergeladen werden!

Mit folgendem Befehl kann festgestellt werden, ob alle Angaben im Drittanbieter Zertifikats (CRT) korrekt sind und dies auch korrekt erstellt wurde:

# openssl x509 -noout -text -in /etc/pki/tls/certs/tachtler.net.crt 
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 142727 (0x22d87)
    Signature Algorithm: sha512WithRSAEncryption
        Issuer: O=CAcert Inc., OU=http://www.CAcert.org, CN=CAcert Class 3 Root
        Validity
            Not Before: Apr 10 18:52:29 2014 GMT
            Not After : Apr  9 18:52:29 2016 GMT
        Subject: CN=*.tachtler.net
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:f2:29:af:e1:4c:88:b5:e5:1c:3f:b3:ea:7f:d4:
                    73:41:91:55:9b:37:1d:c6:0a:a6:3e:29:b9:85:a9:
                    8b:fb:e0:91:9c:c9:33:bf:98:06:02:fc:a9:74:9e:
                    a0:01:91:5e:db:73:93:db:34:2d:d8:dc:94:b8:c5:
                    f7:de:59:28:ab:20:72:95:5f:59:d1:79:18:7f:7b:
                    c3:30:98:65:2b:50:47:5f:4f:5a:d4:97:6a:e2:95:
                    cd:3b:d6:0b:c2:a1:d9:96:64:6a:7a:ff:d2:de:cc:
                    b6:a0:5d:25:dc:57:1c:98:59:22:e0:38:43:d8:e2:
                    49:65:60:83:3c:7f:5e:80:1b:c5:d2:4d:64:79:d9:
                    b3:21:b7:7e:9b:64:c1:71:4a:fe:7c:a3:13:20:4b:
                    f9:9e:e4:60:e6:d7:71:43:fb:a6:c8:77:11:9c:e7:
                    d5:b9:fa:a2:cb:3d:e6:8c:ab:2d:0c:ae:6f:34:61:
                    24:0a:c4:a3:d2:68:b2:ab:72:87:57:00:82:7b:e8:
                    7a:c3:d0:95:b0:3e:07:1b:49:f4:ba:0e:f7:80:5f:
                    2b:01:70:f4:cc:39:1a:76:e1:c1:b8:f1:b2:0a:ee:
                    ba:1f:8c:97:c0:99:c8:57:db:17:d1:ec:59:1b:91:
                    6b:5b:32:47:12:04:cc:0f:94:d3:52:e9:de:9d:3f:
                    ba:15
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment, Key Agreement
            X509v3 Extended Key Usage: 
                TLS Web Client Authentication, TLS Web Server Authentication, Netscape Server Gated Crypto, Microsoft Server Gated Crypto
            Authority Information Access: 
                OCSP - URI:http://ocsp.cacert.org/

            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://crl.cacert.org/class3-revoke.crl

            X509v3 Subject Alternative Name: 
                DNS:*.tachtler.net, othername:<unsupported>
    Signature Algorithm: sha512WithRSAEncryption
         66:a2:6d:30:e0:fb:39:51:1b:e9:56:21:1b:ac:bc:5c:42:a0:
         f7:38:2b:bf:0f:a3:0f:20:03:e9:e8:5a:80:0f:52:11:20:b0:
         17:27:c0:b0:56:03:7b:fd:b2:72:51:2a:b2:67:40:68:19:51:
         5d:8e:ba:a4:86:7d:f3:2f:f7:be:66:50:53:5f:93:67:c4:ca:
         e9:7a:0e:92:ef:53:2f:58:19:13:f0:0e:10:b7:6f:32:51:62:
         86:d8:27:ce:3f:66:49:a6:9c:11:68:26:bc:ea:18:f4:42:dd:
         0c:da:4a:41:f1:e9:24:11:29:38:97:15:bd:8a:5b:a0:5b:76:
         f8:b0:74:c6:54:82:6f:3f:3e:f5:90:a9:94:e4:d7:fd:ac:03:
         df:de:4e:30:5b:83:14:b3:68:6e:09:6b:0c:9c:17:a4:3f:78:
         01:97:d3:45:43:76:8c:e8:57:57:61:14:7b:ec:b2:8d:55:55:
         af:65:a1:18:cd:3b:a4:86:9f:1e:16:21:41:a9:57:cc:b2:08:
         63:8d:7a:3b:f3:6d:09:f3:a5:f6:50:93:b7:3a:23:0f:27:95:
         76:ab:72:78:13:1c:0c:e6:cf:28:2a:ce:33:2e:dd:c1:0a:05:
         d8:48:9f:72:27:82:38:34:bf:ec:20:a2:85:53:b3:fd:c2:15:
         ea:3f:66:08:be:88:77:f1:db:94:04:27:53:31:a7:62:65:00:
         7c:b8:de:ef:db:7a:3c:0f:c1:54:e3:a0:d9:31:36:ee:b0:ea:
         b2:60:f1:7e:3e:be:0d:b8:e2:47:c5:91:aa:ec:e6:06:07:5a:
         a6:9e:48:fe:6b:bb:28:1e:dc:87:8b:e7:50:9b:cc:b0:0b:b9:
         ca:f4:35:ef:cb:32:05:46:da:76:14:72:de:5b:25:76:97:13:
         83:06:a3:30:2c:9e:bf:6f:bb:72:c4:4a:77:22:85:93:d9:7e:
         14:fc:6d:bb:47:eb:1a:6e:82:48:ab:31:2f:ee:fb:dc:f3:7b:
         0d:3a:28:60:6d:b8:e7:58:4d:06:74:2f:93:f4:8a:b7:90:1b:
         92:73:10:b7:71:55:b6:a9:88:13:89:fb:cd:e9:eb:7a:12:2d:
         49:9a:1c:31:d7:77:14:70:3a:2b:a3:8a:91:67:83:bf:53:ba:
         a8:bd:1b:81:56:3b:61:bf:29:0a:7d:be:fc:ed:a3:bb:1d:f3:
         b9:9c:1e:1d:ce:b3:16:17:e0:f0:87:d3:2f:a3:0e:95:f6:52:
         5a:53:14:fa:ae:39:da:f2:17:9e:82:d5:21:6c:8b:82:62:c6:
         71:9c:95:81:76:ae:98:25:57:a2:93:2f:d4:bf:79:be:bb:8c:
         69:64:e5:5d:c1:95:61:08

CRT einbinden

Abschließend muss nun noch das erzeugte Drittanbieter Zertifikats in den Apache HTTP Server durch anpassen der Konfigurationsdatei

  • /etc/httpd/conf.d/ssl.conf

durch nachfolgend gezeigte Änderungen und Ergänzungen, bekannt gegeben werden:

(Nur relevanter Ausschnitt')

...
#   Server Certificate:
#   Point SSLCertificateFile at a PEM encoded certificate.  If
#   the certificate is encrypted, then you will be prompted for a
#   pass phrase.  Note that a kill -HUP will prompt again.  A new
#   certificate can be generated using the genkey(1) command.
# Tachtler
# default: SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/pki/tls/certs/tachtler.net.crt
 
#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
# Tachtler
# default: SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/pki/tls/private/tachtler.net.key
...

ROOT-CRT einbinden

Die ROOT-Zertifikate

  • Klasse 1 PKI Schlüssel
  • Klasse 3 PKI Schlüssel

in einer Datei, mit Namen CAcert_chain.pem-Zertifikate können unter folgender Adresse heruntergeladen werden:

Abschließend muss nun noch eine Datei mit den ROOT-Zeritifikaten in den Apache HTTP Server durch anpassen der Konfigurationsdatei

  • /etc/httpd/conf.d/ssl.conf

durch nachfolgend gezeigte Änderungen, bekannt gegeben werden:

(Nur relevanter Ausschnitt')

#   Server Certificate Chain:
#   Point SSLCertificateChainFile at a file containing the
#   concatenation of PEM encoded CA certificates which form the
#   certificate chain for the server certificate. Alternatively
#   the referenced file can be the same as SSLCertificateFile
#   when the CA certificates are directly appended to the server
#   certificate for convinience.
# Tachtler
# default: #SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
SSLCertificateChainFile /etc/pki/tls/certs/CAcert_chain.pem
...

Dateirechte

Die Installation des gerade erzeugten Drittanbieter Zertifikats und die Vergabe der richtigen Dateirechte, sind der nächste Schritt zum erfolgreichen Einsatz.

Mit nachfolgenden Befehlen werden die Dateirechte für die Dateien

  • /etc/pki/tls/private/tachtler.net.key,
  • /etc/pki/tls/certs/tachtler.net.crt und
  • /etc/pki/tls/certs/CAcert_chain.pem

noch wie folgt gesetzte werden:

Die Dateirechte für /etc/pki/tls/private/tachtler.net.key, werden mit folgendem Befehl gesetzt:

# chmod 400 /etc/pki/tls/private/tachtler.net.key

Die Dateirechte für /etc/pki/tls/certs/tachtler.net.crt, werden mit folgendem Befehl gesetzt:

# chmod 400 /etc/pki/tls/certs/tachtler.net.crt

Die Dateirechte für /etc/pki/tls/certs/CAcert_chain.pem, werden mit folgendem Befehl gesetzt:

# chmod 400 /etc/pki/tls/certs/CAcert_chain.pem

Neustart

nach den vorangegangenen Konfigurationsschritten, sollte einem Neustart nichts im Wege stehen:

# systemctl restart httpd.service

:!: HINWEIS - Es erfolgen keine weiteren Ausgaben, wenn der Start erfolgreich war !

Überprüfung

In oben gezeigtem Beispiel in der Konfigurationsdatei

  • /etc/httpd/conf.d/ssl.conf

wurde ein Drittanbieter Zertifikat hinterlegt, welches in nachfolgende Konfigurationszeilen konfiguriert wurde:

(nur relevanter Ausschnitt)

...
#   Server Certificate:
#   Point SSLCertificateFile at a PEM encoded certificate.  If
#   the certificate is encrypted, then you will be prompted for a
#   pass phrase.  Note that a kill -HUP will prompt again.  A new
#   certificate can be generated using the genkey(1) command.
# Tachtler
# default: SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/pki/tls/certs/tachtler.net.crt
 
#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
# Tachtler
# default: SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/pki/tls/private/tachtler.net.key
 
#   Server Certificate Chain:
#   Point SSLCertificateChainFile at a file containing the
#   concatenation of PEM encoded CA certificates which form the
#   certificate chain for the server certificate. Alternatively
#   the referenced file can be the same as SSLCertificateFile
#   when the CA certificates are directly appended to the server
#   certificate for convinience.
# Tachtler
# default: #SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
SSLCertificateChainFile /etc/pki/tls/certs/CAcert_chain.pem
...

Mit nachfolgenden Seitenaufrufen kann überprüft werden, ob die Änderungen durch die Einbindung der zusätzlichen Konfigurationsdateien erfolgreich war:

Der Aufruf der URL:

sollte nachfolgende Anzeige zum Vorschein bringen:

CentOS-7 - Apache - mod_ssl -Self-signet-certificate - /server-status

:!: HINWEIS - In vorangestelltem Bild ist zu erkennen, dass der Aufruf der Seite https://www.tachtler.net/server-status auf Port 443 erfolgt ist und damit auch verschlüsselt durchgeführt wurde.

Openssl-Befehle

Nachfolgende Befehle dienen zur Abfrage eines Zertifikats via openssl Befehl.

Zertifikat: Dateisystem

Nachfolgende Abfrage ermittelt die Zertifikatsdaten aus dem einlesen des Zertifikats aus dem Dateisystem, welches einen Zugriff auf das Dateisystems des Servers bedingt:

# openssl x509 -noout -text -in /opt/dehydrated-master/certs/tachtler.net/cert.pem 
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            03:bd:ea:18:41:2a:30:70:3e:43:09:0b:cd:6c:ed:b1:07:87
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3
        Validity
            Not Before: Feb 12 05:54:00 2018 GMT
            Not After : May 13 05:54:00 2018 GMT
        Subject: CN=tachtler.net
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (4096 bit)
                Modulus:
                    00:e9:90:af:bb:09:06:a8:80:87:c5:fd:06:e1:d5:
                    10:15:a3:4c:8a:95:4b:e9:df:ab:0e:15:e6:f2:fe:
                    7c:5f:06:69:42:ee:b7:5b:03:90:48:69:3a:0f:98:
                    0b:e9:d5:83:0a:fe:f7:bc:c1:e1:c8:c0:99:42:6a:
                    29:0a:d9:40:77:32:07:8c:38:59:9f:9a:10:d1:18:
                    8f:99:06:68:e0:20:6f:0b:33:2d:f9:1f:d1:84:c2:
                    7d:66:63:a7:16:0d:66:b6:3e:1a:31:8f:b5:3e:84:
                    a7:12:df:f5:a6:6a:ff:98:ee:11:e9:f5:7e:bd:24:
                    e7:67:12:3b:a2:0a:3f:45:81:40:52:a0:cf:09:29:
                    a9:49:63:5c:4b:d0:1a:65:5a:07:09:21:5a:3d:1d:
                    dd:1b:7f:51:48:46:4d:ca:31:58:ba:f4:9d:b8:40:
                    41:0d:a0:79:dc:1c:91:fc:6a:6e:46:8f:e2:b9:74:
                    73:96:88:ac:14:47:6b:e7:fe:22:f9:0a:8f:46:b4:
                    91:c7:5b:65:ae:0d:7d:de:92:bf:5d:ed:9d:b7:96:
                    83:1d:a4:8d:75:f3:92:21:83:e0:d9:71:8a:a2:c8:
                    10:30:1b:1c:a7:d8:cd:75:ae:3d:c0:1b:b8:0e:2d:
                    fc:5f:67:f5:0f:15:ec:05:6c:ec:e2:33:3a:d7:e2:
                    d4:8e:16:e7:60:c1:00:9a:02:41:a2:99:83:6c:90:
                    46:20:7d:81:53:26:ca:15:9f:75:a5:e0:2f:d1:8c:
                    03:3c:14:38:80:99:41:2d:84:e9:ac:20:86:90:4f:
                    2c:86:6c:2e:c5:3c:ce:a2:6b:af:25:5d:49:9b:ce:
                    ab:ca:a4:7d:fd:27:77:a1:55:40:c4:1b:f9:ae:7c:
                    16:d6:c8:be:b5:ad:6b:c7:0b:59:ed:7a:b9:7b:bf:
                    48:00:37:e6:f3:92:59:14:4e:14:8a:be:6e:a0:70:
                    bb:8c:39:80:d2:e2:5f:43:14:06:36:f5:6a:a2:e9:
                    9f:ea:e9:1a:a7:c0:f9:f6:37:3f:7b:32:d6:01:a1:
                    91:0a:d1:7d:11:b5:70:1f:89:fc:b1:7c:15:fd:16:
                    e7:eb:cc:53:8a:8a:2a:01:44:d5:83:21:15:ef:51:
                    ea:da:05:9b:1d:c5:65:d9:7d:5b:4b:b8:7d:92:a2:
                    54:ae:a0:f6:37:4f:54:27:e3:4b:57:e8:66:62:cb:
                    db:8c:b3:f9:05:24:dc:0f:95:18:5f:57:1a:2e:e0:
                    4a:ae:97:45:2c:c3:1b:89:de:c0:de:11:ba:b3:a1:
                    6e:84:4e:7f:3e:98:e9:6e:cc:f2:46:1e:4b:1a:2a:
                    36:1d:39:9e:78:a4:99:83:99:9c:d7:b4:8e:83:04:
                    95:bf:97
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Key Identifier: 
                A9:7D:E3:D4:D5:2A:06:19:1B:43:E2:F7:47:2C:20:BC:91:08:23:00
            X509v3 Authority Key Identifier: 
                keyid:A8:4A:6A:63:04:7D:DD:BA:E6:D1:39:B7:A6:45:65:EF:F3:A8:EC:A1

            Authority Information Access: 
                OCSP - URI:http://ocsp.int-x3.letsencrypt.org
                CA Issuers - URI:http://cert.int-x3.letsencrypt.org/

            X509v3 Subject Alternative Name: 
                DNS:apache70040.tachtler.net, DNS:apache70050.tachtler.net, DNS:apache70060.tachtler.net,
DNS:apache70090.tachtler.net, DNS:apache70100.tachtler.net, DNS:apache70110.tachtler.net,
DNS:awstats70060.tachtler.net, DNS:awstats70090.tachtler.net, DNS:buero.tachtler.net,
DNS:dmarcreports.tachtler.net, DNS:dokuwiki.tachtler.net, DNS:e2loganalyzer.tachtler.net,
DNS:elasticsearch70110.tachtler.net, DNS:fail2map.tachtler.net, DNS:gitlab.tachtler.net,
DNS:graphite.tachtler.net, DNS:graylog.tachtler.net, DNS:homepage.tachtler.net, DNS:icinga-
classicui.tachtler.net, DNS:icinga-dashing.tachtler.net, DNS:icinga.tachtler.net, DNS:install.tachtler.net,
DNS:ipmi.tachtler.net, DNS:mailgraph.tachtler.net, DNS:mysqldumper.tachtler.net, DNS:nutch70100.tachtler.net,
DNS:phpldapadmin.tachtler.net, DNS:phpmyadmin.tachtler.net, DNS:postfixadmin.tachtler.net,
DNS:proxy.tachtler.net, DNS:psiprobe70100.tachtler.net, DNS:receiver.tachtler.net,
DNS:repository.tachtler.net,DNS:router-dg.tachtler.net, DNS:router.tachtler.net, DNS:solr70100.tachtler.net,
DNS:squid.tachtler.net, DNS:squidanalyzer.tachtler.net, DNS:switch.tachtler.net, DNS:tachtler.net,
DNS:tomcat70100.tachtler.net, DNS:usv.tachtler.net, DNS:webcam.tachtler.net, DNS:webcamarchiv.tachtler.net,
DNS:webdav.tachtler.net, DNS:wpad.tachtler.net, DNS:www.dokuwiki.tachtler.net, DNS:www.tachtler.net
            X509v3 Certificate Policies: 
                Policy: 2.23.140.1.2.1
                Policy: 1.3.6.1.4.1.44947.1.1.1
                  CPS: http://cps.letsencrypt.org
                  User Notice:
                    Explicit Text: This Certificate may only be relied upon by Relying Parties and only in
accordance with the Certificate Policy found at https://letsencrypt.org/repository/

    Signature Algorithm: sha256WithRSAEncryption
         54:a4:1b:7e:5f:7e:22:60:93:9c:d1:cf:cf:9d:ac:f1:3e:e5:
         9c:2f:ee:72:57:1a:0d:24:cf:4e:d5:db:38:18:b9:93:2d:c8:
         d4:c6:53:18:b6:95:b3:09:4a:5d:5d:27:87:53:d4:8e:c1:e3:
         18:fc:33:80:b2:ba:6d:21:2a:9e:0a:4f:f1:55:bb:32:cd:cf:
         a7:0a:c4:f0:b8:b5:f4:c4:4d:f5:72:f5:46:ea:aa:57:cb:56:
         99:fe:14:8e:72:1b:27:99:03:b9:6b:5f:b9:ce:c0:ff:a4:46:
         82:b4:a4:3a:34:32:a9:56:6e:eb:07:f3:25:ed:be:00:cb:49:
         84:e5:a6:47:5c:e0:86:f2:09:8d:f6:c7:7f:57:99:c8:63:78:
         81:40:e8:0a:d9:4c:ef:ec:d3:43:06:c6:d0:25:60:d7:f7:ab:
         69:2a:a8:f4:7c:b3:9f:1c:ee:da:30:d9:0f:1c:d0:0f:51:3b:
         a7:c2:3e:8e:3b:f0:15:db:ef:5e:1a:f0:5b:12:fa:76:b5:56:
         4b:58:15:77:71:72:da:96:39:db:dd:77:cd:a8:e5:1b:ae:db:
         38:6e:c4:8b:56:f8:a3:b8:3d:8c:98:d2:e4:db:cb:c1:41:7a:
         78:ac:7b:9b:3e:ea:1c:3d:ed:cb:3d:04:06:e5:de:1c:82:11:
         32:6b:c8:d2

Zertifikat: HTTPS-Abfrage

Nachfolgende Abfrage ermittelt das Zertifikat aus dem einlesen des Zertifikats aus eine HTTPS-Anfrage an den Server:

# openssl s_client -showcerts -servername www.tachtler.net -connect 88.217.171.167:443 2>/dev/null
CONNECTED(00000003)
---
Certificate chain
 0 s:/CN=tachtler.net
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
-----BEGIN CERTIFICATE-----
MIIKdTCCCV2gAwIBAgISA5wjYH8g820jFJtTOyQ8NnS1MA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzEyMDUwNDA2MDZaFw0x
ODAzMDUwNDA2MDZaMBcxFTATBgNVBAMTDHRhY2h0bGVyLm5ldDCCAiIwDQYJKoZI
hvcNAQEBBQADggIPADCCAgoCggIBALH7TynGtBgtEIq/mlqQOWh80mmT9XPELo34
vmpkI9hGi4XTcQKzr4pgWoRuGnu9l6mPuw3eVKV9/+K73gogkuOzdxhcGhv6ft4f
P4lIDug+mLEeVSTxXKmVATlJdYiO/F+RuTBPhuKQpP4jEWytbhZMsQaiJRMm7FIy
3ja0ORv5NLK0d1DOEGDO9dGsil8TUe8RxTob8ndjeOGVyx0ui9iS4+uxV5ulyibm
Mt/Ltg4vYQNEeYavvDx2F36NoZ2fQXVET5IcQOFH1+TCp6cPVN67M7BXN9ETYTHm
N3D4IYKWYpsLrHhIp4cKoEIXBRTlklXG+VwQXocVbSoilL3FGaUzeaRseZrS0lI9
kK4M8oGpBP81YztXdAkSEma4UuxtS+yjedWFSA908G46vVWnzVLdZCqtYy94xHmV
LpkEZMQOdUwjy+firH8mJDK06cn1CX20KqUoMN3v48wgFBS1IJWvw91H090VgJHt
s2iJSAXwfmU9pduALoAoXAP9PQPhoeK+X+rmikNqFbUbMgUzq2QqtDvuq7lnan1b
GOPFMTh0PHbXFtDHguvK6Ln9zM8YDlZ2EkVdHaIqzwLpwTOyrapNXAYoJb0Red6m
aziVzU99AwZTCbMENHEwu1X4Lkf3jP3mNUz4yguWjCI5XaeriuMOmeDfLkM3yWk3
1Ozs8SGFAgMBAAGjggaGMIIGgjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYI
KwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFI+/FptU
hTaHrXSLpNNIVmzsh4GeMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyh
MG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgz
LmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgz
LmxldHNlbmNyeXB0Lm9yZy8wggSPBgNVHREEggSGMIIEgoIYYXBhY2hlNzAwNDAu
dGFjaHRsZXIubmV0ghhhcGFjaGU3MDA1MC50YWNodGxlci5uZXSCGGFwYWNoZTcw
MDYwLnRhY2h0bGVyLm5ldIIYYXBhY2hlNzAwOTAudGFjaHRsZXIubmV0ghhhcGFj
aGU3MDEwMC50YWNodGxlci5uZXSCGGFwYWNoZTcwMTEwLnRhY2h0bGVyLm5ldIIZ
YXdzdGF0czcwMDYwLnRhY2h0bGVyLm5ldIIZYXdzdGF0czcwMDkwLnRhY2h0bGVy
Lm5ldIISYnVlcm8udGFjaHRsZXIubmV0ghlkbWFyY3JlcG9ydHMudGFjaHRsZXIu
bmV0ghVkb2t1d2lraS50YWNodGxlci5uZXSCGmUybG9nYW5hbHl6ZXIudGFjaHRs
ZXIubmV0gh9lbGFzdGljc2VhcmNoNzAxMTAudGFjaHRsZXIubmV0ghVmYWlsMm1h
cC50YWNodGxlci5uZXSCE2dpdGxhYi50YWNodGxlci5uZXSCFWdyYXBoaXRlLnRh
Y2h0bGVyLm5ldIIUZ3JheWxvZy50YWNodGxlci5uZXSCFWhvbWVwYWdlLnRhY2h0
bGVyLm5ldIIdaWNpbmdhLWNsYXNzaWN1aS50YWNodGxlci5uZXSCG2ljaW5nYS1k
YXNoaW5nLnRhY2h0bGVyLm5ldIITaWNpbmdhLnRhY2h0bGVyLm5ldIIUaW5zdGFs
bC50YWNodGxlci5uZXSCEWlwbWkudGFjaHRsZXIubmV0ghZtYWlsZ3JhcGgudGFj
aHRsZXIubmV0ghhteXNxbGR1bXBlci50YWNodGxlci5uZXSCF251dGNoNzAxMDAu
dGFjaHRsZXIubmV0ghlwaHBsZGFwYWRtaW4udGFjaHRsZXIubmV0ghdwaHBteWFk
bWluLnRhY2h0bGVyLm5ldIIZcG9zdGZpeGFkbWluLnRhY2h0bGVyLm5ldIIScHJv
eHkudGFjaHRsZXIubmV0ghpwc2lwcm9iZTcwMTAwLnRhY2h0bGVyLm5ldIIVcmVj
ZWl2ZXIudGFjaHRsZXIubmV0ghdyZXBvc2l0b3J5LnRhY2h0bGVyLm5ldIIWcm91
dGVyLWRnLnRhY2h0bGVyLm5ldIITcm91dGVyLnRhY2h0bGVyLm5ldIIWc29scjcw
MTAwLnRhY2h0bGVyLm5ldIISc3F1aWQudGFjaHRsZXIubmV0ghpzcXVpZGFuYWx5
emVyLnRhY2h0bGVyLm5ldIITc3dpdGNoLnRhY2h0bGVyLm5ldIIMdGFjaHRsZXIu
bmV0ghh0b21jYXQ3MDEwMC50YWNodGxlci5uZXSCEHVzdi50YWNodGxlci5uZXSC
E3dlYmNhbS50YWNodGxlci5uZXSCGXdlYmNhbWFyY2hpdi50YWNodGxlci5uZXSC
E3dlYmRhdi50YWNodGxlci5uZXSCEXdwYWQudGFjaHRsZXIubmV0ghl3d3cuZG9r
dXdpa2kudGFjaHRsZXIubmV0ghB3d3cudGFjaHRsZXIubmV0MIH+BgNVHSAEgfYw
gfMwCAYGZ4EMAQIBMIHmBgsrBgEEAYLfEwEBATCB1jAmBggrBgEFBQcCARYaaHR0
cDovL2Nwcy5sZXRzZW5jcnlwdC5vcmcwgasGCCsGAQUFBwICMIGeDIGbVGhpcyBD
ZXJ0aWZpY2F0ZSBtYXkgb25seSBiZSByZWxpZWQgdXBvbiBieSBSZWx5aW5nIFBh
cnRpZXMgYW5kIG9ubHkgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBDZXJ0aWZpY2F0
ZSBQb2xpY3kgZm91bmQgYXQgaHR0cHM6Ly9sZXRzZW5jcnlwdC5vcmcvcmVwb3Np
dG9yeS8wDQYJKoZIhvcNAQELBQADggEBAEqckfys6nPVZDKBZADy6tEZuQ3gaFka
tgy61UjLbtzqag+ILmfN1zAbqZnk67MXf3sCD66kNFfGiW+DCvXjVdI6uee35cMd
f+6xv4NvwTiESsb/cPuk51Ewq3WDKRv3MHjtwE1QyjVil/wc8OFPBoLUI8Vyaqwb
6xYMXvChAOGvmm9Y5NUqhX1A0w+At6xPcTkqgXsXnUKDlF03vT9ZBAZm62aa0Ria
Upluz9ww+ci2TIOfrJUh4qxWWirRGp3Ca5Ck7Z+BK3n+ao0T7EdKi8zMhis0iQb0
HCxaA5xzeWdtYAqjJ8EO5p1JF7AsHB1KFmPHN868jKQTnrV9WKwUwcA=
-----END CERTIFICATE-----
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
-----END CERTIFICATE-----
---
Server certificate
subject=/CN=tachtler.net
issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 4865 bytes and written 472 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-SHA
Server public key is 4096 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-SHA
    Session-ID: 88F3392BAAC750BD03300E556330F57852D08FC9D8AEADC83EF0A32DF695BE27
    Session-ID-ctx: 
    Master-Key:
B84D456A824306D78D6AA6F0208A8D7C45FDE31EB024E9BD92FA9A66C00EBE94444F147559806F7566F62E850E80FB9A
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - c9 1a 36 03 88 60 ab 46-a0 cb fc fc 09 f7 ac d1   ..6..`.F........
    0010 - 9c 71 dd cc 22 02 4b 5b-55 1f 85 b5 cc 4b 80 4a   .q..".K[U....K.J
    0020 - 99 4b d9 ab ea 2d c7 f2-2e bb 5b 6b 88 ce 5e d2   .K...-....[k..^.
    0030 - d6 95 88 b6 dd e3 62 a4-1e 2a f1 b1 8e 92 27 f8   ......b..*....'.
    0040 - 22 48 ff 4b f0 e4 7e d2-49 0d 92 87 18 b7 c4 2d   "H.K..~.I......-
    0050 - e5 0a 89 81 c0 58 3e b4-a1 68 f0 6c 45 06 b6 0b   .....X>..h.lE...
    0060 - 76 2b de 46 86 5c 13 fb-48 dc 83 44 e1 a6 b4 cc   v+.F.\..H..D....
    0070 - 57 ef 26 37 bb 25 0e eb-81 9f 83 9f 4c 03 1a fe   W.&7.%......L...
    0080 - 22 f9 75 65 9f 9e 64 90-0f 51 f1 8d 19 89 4e 98   ".ue..d..Q....N.
    0090 - c9 d7 a8 44 7e 25 6a 45-bd a7 55 39 54 69 ee 81   ...D~%jE..U9Ti..
    00a0 - cb 51 58 6a 47 00 10 52-62 0c 02 23 07 1b 67 44   .QXjG..Rb..#..gD
    00b0 - 33 b8 1a 31 01 45 07 ba-5f b7 95 5a 18 12 b6 53   3..1.E.._..Z...S
    00c0 - 55 1d ea 5e 1b 96 49 f1-fd 5e 25 d7 27 7b f2 fe   U..^..I..^%.'{..
    00d0 - 4b fb 2b d8 16 13 65 8d-a1 10 7b ad 20 d0 62 bf   K.+...e...{. .b.

    Start Time: 1518420083
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

:!: HINWEIS - Abschließend kann die [Return/Einagbe]-Taste gedrückt werden, um die Kommunikation zu beenden.

Zertifikat: HTTPS-Abfrage - Zertifikatslaufzeit

Nachfolgende Abfrage ermittelt das Ausstellungs- und Ablaufdatum aus dem einlesen des Zertifikats aus eine HTTPS-Anfrage an den Server:

# openssl s_client -showcerts -servername www.tachtler.net -connect 88.217.171.167:443 2>/dev/null | openssl x509 -noout -dates
notBefore=Dec  5 04:06:06 2017 GMT
notAfter=Mar  5 04:06:06 2018 GMT

:!: HINWEIS - Abschließend kann die [Return/Einagbe]-Taste gedrückt werden, um die Kommunikation zu beenden.

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/apache_http_server_centos_7_-_mod_ssl_-_verschluesselung_https.txt · Zuletzt geändert: 2018/06/25 12:55 von klaus