Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:let_s_encrypt_-_hpkp

Let's Encrypt - HPKP

Let's Encrypt ist eine kostenlose, automatisierte und offene Zertifizierungsstelle (CA), welche offiziell dem Nutzen der Öffentlichkeit dienen soll. Let's Encrypt ist ein Service der von der Internet Security Research Group (ISRG) zur Verfügung gestellt wird.

Let's Encrypt bietet öffentlich, jederman digitalen Zertifikate an, um HTTPS (SSL / TLS) Verschlüsselung für Websites zu ermöglichen. Dies wird kostenlos und in einer möglichst benutzerfreundlichen Art und Weise angeboten. Let's Encrypt tut dies, weil Let's Encrypt offiziell ein sichereres und die Privatsphäre respektierendes Internet fördern möchte.

Weitere Informationen zum Einsatz von HPKP in Verwendung mit Let's Encrypt-Zertifikaten sind unter nachfolgendem externen Links verfügbar:

Beschreibung Link
Scott Helme HPKP: HTTP Public Key Pinning
Let's Encrypt Chain of Trust
Mozilla MDN web docs - Public Key Pinning

Vorbereitung

Nachfolgende Anleitung setzt voraus, das bereits erfolgreich ein Let's Encrypt-Zertifikat erstellt wurde bzw. werden kann.

Wie Zertifikate via Let's Encrypt erstellt werden können, kann unter nachfolgenden internen Links nachgelesen werden:

Nachfolgende Komponenten sollten nach der erfolgreichen Erstellung eines Let's Encrypt-Zertifikats vorhanden sein:

  • privater Schlüssels
  • Zertifikast-Requests
  • Zertifikat
  • einfachen Zertifikatskette
  • vollständige Zertifikatskette

Falls eine der vorhergehenden Anleitungen zur Erzeugung eines Let's Encrypt-Zertifikats genutzt wurde, sollte nachfolgender Befehl, eine Auflistung der vorhergehend genannten Komponenten, wie nachfolgende dargestellt, darstellen:

# ls -l /opt/dehydrated-master/certs/*
/opt/dehydrated-master/certs/tachtler.net:
total 24
-rw------- 1 root root 1704 Aug 30 09:12 cert-1535613155.csr
-rw------- 1 root root 2508 Aug 30 09:12 cert-1535613155.pem
lrwxrwxrwx 1 root root   19 Aug 30 09:12 cert.csr -> cert-1535613155.csr
lrwxrwxrwx 1 root root   19 Aug 30 09:12 cert.pem -> cert-1535613155.pem
-rw------- 1 root root 1680 Aug 30 09:12 chain-1535613155.pem
lrwxrwxrwx 1 root root   20 Aug 30 09:12 chain.pem -> chain-1535613155.pem
-rw------- 1 root root 4188 Aug 30 09:12 fullchain-1535613155.pem
lrwxrwxrwx 1 root root   24 Aug 30 09:12 fullchain.pem -> fullchain-1535613155.pem
-rw------- 1 root root 3243 Aug 30 09:12 privkey-1535613155.pem
lrwxrwxrwx 1 root root   22 Aug 30 09:12 privkey.pem -> privkey-1535613155.pem

:!: HINWEIS - Nachfolgend wird die Datei fullchain.pem benötigt !

Zertifikate speichern

Um bequem FINGERPRINTs aus der in Benutzung befindlichen Zertifikatskette erstellen zu können, ist es erforderlich, mit einem Editor der Wahl und nachfolgendem Befehl, alle Zertifikate aus der Datei, hier unter

  • /opt/dehydrated-master/certs/tachtler.net/fullchain.pem

zu extrahieren.

# openssl s_client -showcerts -verify 3 -connect tachtler.net:443 < /dev/null

Nachfolgend das Ergebnis des Befehls:

# openssl s_client -showcerts -verify 3 -connect tachtler.net:443 < /dev/null
verify depth is 3
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = tachtler.net
verify return:1
---
Certificate chain
 0 s:/CN=tachtler.net
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
-----BEGIN CERTIFICATE-----
MIIHLjCCBhagAwIBAgISA4/b0oJ088piwMXKvBdTjdqbMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODA4MzAwNjIwMTVaFw0x
ODExMjgwNjIwMTVaMBcxFTATBgNVBAMTDHRhY2h0bGVyLm5ldDCCAiIwDQYJKoZI
hvcNAQEBBQADggIPADCCAgoCggIBAP6ptSprdM5GzYbBcfHKSDjyP4ou/xM0HDv+
GqwnFD9bO5mkSJPGVcOAXO2UUQSPnN9RU7KD/++zqaxI+oOSvEjH1ijxIB+NSVLh
6vBeCBFRmzJ/UfEohHz39IA+bDs+AqoFv0HvVbCmDnvRf1GoOyzPGC5VsMFTD+7k
iNvu44Ggg9R7Z2k65LqqaeY3OywpslcfHYkdSy2q/F+TdOyCboKdN9k8lpuUvJq6
w7cEOft75QTSN31XzE96aQq4uHAggIYcrNgu7rUCR05hg5mfHYsjrEy2p/AGqrQI
McurWashFPdyvg1sEp2uRYv7GO1U/RFZUp6h0fnfXPrhcQhfvgWU4TyBfpmQ7zUR
mBZZK0slTBUpUHWhlQSUS2THHj5uUYleXGwwhsSHvYisXjiqhmf/34lV7jNbFt7k
jMx6hzrZrHXei/OdVDhCfAyWJW2+1IUU9mw1M7XYwuZx/ZLrRquza9wUykYN8f8k
ydGKu/ogjH8lMkVHrc4sNx61LFa7Qqrqx6ylUMDVzuXxFQE1CVMQ0+snirZPnHbC
nRwfXz41XjGXidFBXPVc4Jhm3WihyYgIGHhgtkJwjzzw5dwTC42ILLyT+pubp9MH
d8KciRqaWHD9twpLPVjHI+qtfk2oMA5Ak+Ula8EsJvJsX/zZUMsBsaWkAr6dF7uI
XzKnUB3rAgMBAAGjggM/MIIDOzAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYI
KwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFBBQkvwx
ymp2uqIj6uSjxPAVAMTTMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyh
MG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgz
LmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgz
LmxldHNlbmNyeXB0Lm9yZy8wQgYDVR0RBDswOYIOKi50YWNodGxlci5uZXSCDHRh
Y2h0bGVyLm5ldIIZd3d3LmRva3V3aWtpLnRhY2h0bGVyLm5ldDCB/gYDVR0gBIH2
MIHzMAgGBmeBDAECATCB5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0
dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMg
Q2VydGlmaWNhdGUgbWF5IG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQ
YXJ0aWVzIGFuZCBvbmx5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNh
dGUgUG9saWN5IGZvdW5kIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9z
aXRvcnkvMIIBBAYKKwYBBAHWeQIEAgSB9QSB8gDwAHcAwRZK4Kdy0tQ5LcgKwQdw
1PDEm96ZGkhAwfoHUWT2M2AAAAFlibQ8owAABAMASDBGAiEAjyKZdko8RkIoCg1H
2pfx2CsBBgDPGjscnKH0Px2GR0cCIQCp1gdScGfltLcnmjBeSTUjmw4DKFx+88dA
giAA847XngB1ACk8UZZUyDlluqpQ/FgH1Ldvv1h6KXLcpMMM9OVFR/R4AAABZYm0
PqYAAAQDAEYwRAIgM0WQIOCXafNl/8vQWoa08B1Uz84QssRvoHB4ffAXNOACICbo
7EJFTmTPr9tOmbEHFcFFcex+7k71T/alJlRWjaBHMA0GCSqGSIb3DQEBCwUAA4IB
AQB3ejO9w6AQwgRH4nCsw2E+1WvXChxrnY+i5ZcbxMpUqwPfrhzfvV6SkryneSe+
hiMKM7rx5poyFgnpnaC3XGjIP9p4X69TmpyQWavFMdInxi+hhVDjxMDFJmqUXR3Z
VmYAk6EhLClWWBkcMjTi1u4b4sZH/NJcnoovtFTEThZ1HQu2/P2LrhnInHwaROi/
6/tZag819WHgL6PNjjzw0E0mMN/Y1CcyAiyLKsL6NRvDDwOZeflFoMazW/y+v3Xz
qCDrGncGQzXvl3y8LbpyIt+sQn4Z8woWn2GjhRH8lPvmULL+lfuLa2lvjagIcUiC
/SJsQCkCsDh6MnXGJw4P69yS
-----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 3966 bytes and written 415 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
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-AES256-GCM-SHA384
    Session-ID: 941ACB4C1C77456480144B1EE71632F8882F87EFE50DD147E9AE328AA3694BC7
    Session-ID-ctx:
    Master-Key: C7BC1ED9DECB55B63B7DDDA0BF96BEDC5C00B481EFAB2988B36F2885283A310EFAD32E084511C528BBF3D8CD9DEBD17D
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    0000 - df 58 3c df e7 de df a2-6b c9 06 fa 15 72 ee 9c   .X<.....k....r..
    0010 - 1c d9 74 e7 c1 7f 32 60-b3 79 c5 f3 dc 3e 28 8a   ..t...2`.y...>(.
    0020 - 66 81 e5 6f 2d 26 a4 84-d0 c0 46 2a ba 14 1a c5   f..o-&....F*....
    0030 - 2a 26 78 1d cc 5d 08 7e-9d 3c 29 21 93 ca fd 6b   *&x..].~.<)!...k
    0040 - 40 ac 21 64 0d db c9 62-41 b2 68 0f 03 57 94 b0   @.!d...bA.h..W..
    0050 - 11 48 9c 95 be db 39 0a-9d 11 59 9d 4b 61 ce e2   .H....9...Y.Ka..
    0060 - 68 ab a9 ef 86 bf 59 a9-34 31 8d bf 4b 11 54 69   h.....Y.41..K.Ti
    0070 - 7d e6 f0 9a bd 25 d5 e5-64 a6 a7 da 23 fe af 76   }....%..d...#..v
    0080 - 4d b8 3d a6 ad 13 b2 5b-bd e1 a4 2d 4f 06 fe 0b   M.=....[...-O...
    0090 - 61 a2 d5 e3 a4 76 5d fa-5a 97 ef d5 fd 1c 96 ee   a....v].Z.......
    00a0 - f1 e8 4d 72 d4 a9 74 87-96 e1 c7 04 a7 7b ea 30   ..Mr..t......{.0
    00b0 - 78 ea a6 5e 3d 80 b1 11-27 ed 4e 62 93 9a 4a 7d   x..^=...'.Nb..J}

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

Anschließend können nun durch „Cut & Paste“ (Ausschneiden & Einfügen) die entsprechenden Zertifikate in eigene Dateien gespeichert werden, was mit nachfolgenden Befehlen durchgeführt werden kann und wie folgt aussehen könnte:

Zertifikat: tachtler.net

# vim  /opt/dehydrated-master/certs/tachtler.net/tachtler.net.pem
-----BEGIN CERTIFICATE-----
MIIHLjCCBhagAwIBAgISA4/b0oJ088piwMXKvBdTjdqbMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODA4MzAwNjIwMTVaFw0x
ODExMjgwNjIwMTVaMBcxFTATBgNVBAMTDHRhY2h0bGVyLm5ldDCCAiIwDQYJKoZI
hvcNAQEBBQADggIPADCCAgoCggIBAP6ptSprdM5GzYbBcfHKSDjyP4ou/xM0HDv+
GqwnFD9bO5mkSJPGVcOAXO2UUQSPnN9RU7KD/++zqaxI+oOSvEjH1ijxIB+NSVLh
6vBeCBFRmzJ/UfEohHz39IA+bDs+AqoFv0HvVbCmDnvRf1GoOyzPGC5VsMFTD+7k
iNvu44Ggg9R7Z2k65LqqaeY3OywpslcfHYkdSy2q/F+TdOyCboKdN9k8lpuUvJq6
w7cEOft75QTSN31XzE96aQq4uHAggIYcrNgu7rUCR05hg5mfHYsjrEy2p/AGqrQI
McurWashFPdyvg1sEp2uRYv7GO1U/RFZUp6h0fnfXPrhcQhfvgWU4TyBfpmQ7zUR
mBZZK0slTBUpUHWhlQSUS2THHj5uUYleXGwwhsSHvYisXjiqhmf/34lV7jNbFt7k
jMx6hzrZrHXei/OdVDhCfAyWJW2+1IUU9mw1M7XYwuZx/ZLrRquza9wUykYN8f8k
ydGKu/ogjH8lMkVHrc4sNx61LFa7Qqrqx6ylUMDVzuXxFQE1CVMQ0+snirZPnHbC
nRwfXz41XjGXidFBXPVc4Jhm3WihyYgIGHhgtkJwjzzw5dwTC42ILLyT+pubp9MH
d8KciRqaWHD9twpLPVjHI+qtfk2oMA5Ak+Ula8EsJvJsX/zZUMsBsaWkAr6dF7uI
XzKnUB3rAgMBAAGjggM/MIIDOzAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYI
KwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFBBQkvwx
ymp2uqIj6uSjxPAVAMTTMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyh
MG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgz
LmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgz
LmxldHNlbmNyeXB0Lm9yZy8wQgYDVR0RBDswOYIOKi50YWNodGxlci5uZXSCDHRh
Y2h0bGVyLm5ldIIZd3d3LmRva3V3aWtpLnRhY2h0bGVyLm5ldDCB/gYDVR0gBIH2
MIHzMAgGBmeBDAECATCB5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0
dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMg
Q2VydGlmaWNhdGUgbWF5IG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQ
YXJ0aWVzIGFuZCBvbmx5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNh
dGUgUG9saWN5IGZvdW5kIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9z
aXRvcnkvMIIBBAYKKwYBBAHWeQIEAgSB9QSB8gDwAHcAwRZK4Kdy0tQ5LcgKwQdw
1PDEm96ZGkhAwfoHUWT2M2AAAAFlibQ8owAABAMASDBGAiEAjyKZdko8RkIoCg1H
2pfx2CsBBgDPGjscnKH0Px2GR0cCIQCp1gdScGfltLcnmjBeSTUjmw4DKFx+88dA
giAA847XngB1ACk8UZZUyDlluqpQ/FgH1Ldvv1h6KXLcpMMM9OVFR/R4AAABZYm0
PqYAAAQDAEYwRAIgM0WQIOCXafNl/8vQWoa08B1Uz84QssRvoHB4ffAXNOACICbo
7EJFTmTPr9tOmbEHFcFFcex+7k71T/alJlRWjaBHMA0GCSqGSIb3DQEBCwUAA4IB
AQB3ejO9w6AQwgRH4nCsw2E+1WvXChxrnY+i5ZcbxMpUqwPfrhzfvV6SkryneSe+
hiMKM7rx5poyFgnpnaC3XGjIP9p4X69TmpyQWavFMdInxi+hhVDjxMDFJmqUXR3Z
VmYAk6EhLClWWBkcMjTi1u4b4sZH/NJcnoovtFTEThZ1HQu2/P2LrhnInHwaROi/
6/tZag819WHgL6PNjjzw0E0mMN/Y1CcyAiyLKsL6NRvDDwOZeflFoMazW/y+v3Xz
qCDrGncGQzXvl3y8LbpyIt+sQn4Z8woWn2GjhRH8lPvmULL+lfuLa2lvjagIcUiC
/SJsQCkCsDh6MnXGJw4P69yS
-----END CERTIFICATE-----

Zertitfikat: Let's Encrypt Authority X3 (Aktive)

# vim  /opt/dehydrated-master/certs/tachtler.net/Let_s_Encrypt_Authority_X3.pem
-----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-----

Zertifikat: Let's Encrypt Authority X4 (Backup)

Unter nachfolgendem Link kann das Backup - Let's Encrypt-Zertifikat heruntergeladen werden,

was z.B. mit nachfolgendem Befehl durchgeführt werden kann:

# wget https://letsencrypt.org/certs/lets-encrypt-x4-cross-signed.pem.txt -P 
/opt/dehydrated-master/certs/tachtler.net/
--2018-10-12 06:39:26--  https://letsencrypt.org/certs/lets-encrypt-x4-cross-signed.pem.txt
Resolving letsencrypt.org (letsencrypt.org)... 104.108.65.96, 2a02:26f0:12:39c::ce0, 2a02:26f0:12:399::ce0
Connecting to letsencrypt.org (letsencrypt.org)|104.108.65.96|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1647 (1.6K) [text/plain]
Saving to: ‘/opt/dehydrated-master/certs/tachtler.net/lets-encrypt-x4-cross-signed.pem.txt’

100%[======================================>] 1,647       --.-K/s   in 0s

2018-10-12 06:39:26 (122 MB/s) - ‘/opt/dehydrated-master/certs/tachtler.net/lets-encrypt-x4-cross-
signed.pem.txt’ saved [1647/1647]

Anschließend kann die Datei noch umbenannt werden, damit diese besser in unser weiteres Verarbeitungsschema passt, was mit nachfolgendem Befehl durchgeführt werden kann:

# mv /opt/dehydrated-master/certs/tachtler.net/lets-encrypt-x4-cross-signed.pem.txt /opt/dehydrated-master/certs/tachtler.net/Let_s_Encrypt_Authority_X4.pem
# vim  /opt/dehydrated-master/certs/tachtler.net/Let_s_Encrypt_Authority_X4.pem
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc6bLEeMfizANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDEwMloXDTIxMDMxNzE2NDEwMlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFg0MIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEA4SR0Qnu3kTHZc/84qtjORFy3OQrcRK4NvUW5lzdnr71QT1/T
EFRr90HajmPmbVvA6ECpjEH80QOJ/2JhCWDWBwV4mpC9GmQ+T9zPdy+Ja8tnr0FN
xY0AwGv+jYTctfKVMajo9pCgQ0qTdFyzPkNpS4kiR3RRPplkw80kAfmELyh3FyKn
3cNsCExmLzd0xW+TjrBGNxZh0VCYyLAPT1hTfKz22i2WYVCtQ9wKpk+etVK5nI7v
Tt9GszHcIPxpwqMgdT7sOBs2TmZm0t/1ZqSTL3umDpQ+YD1KSxxvurRNHDyRWG4v
TcTacNvtATl2wEnn6TW1FAaQweWS4hD9a7m0hQIDAQABo4IBfTCCAXkwEgYDVR0T
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
Y3JsMB0GA1UdDgQWBBTFsatOTLHNZDCTfsGEmQWr5gPiJTANBgkqhkiG9w0BAQsF
AAOCAQEANlaeSdstfAtqFN3jdRZJFjx9X+Ob3PIDlekPYQ1OQ1Uw43rE1FUj7hUw
g2MJKfs9b7M0WoQg7C20nJY/ajsg7pWhUG3J6rlkDTfVY9faeWi0qsPYXE6BpBDr
5BrW/Xv8yT8U2BiEAmNggWq8dmFl82fghmLzHBM8X8NZ3ZwA1fGePA53AP5IoD+0
ArpW8Ik1sSuQBjZ8oQLfN+G8OoY7MNRopyLyQQCNy4aWfE+xYnoVoa5+yr+aPiX0
7YQrY/cKawAn7QB4PyF5//IKSAVs7mAuB68wbMdE3FKfOHfJ24W4z/bIJTrTY8Y5
Sr4AUhtzf8oVDrHZYWRrP4joIcOu/Q==
-----END CERTIFICATE-----

Zertifikat: DST Root CA X3 (Cross Signed)

Unter nachfolgendem Link kann das DST Root CA X3 (Cross Signed) - Let's Encrypt-Zertifikat heruntergeladen werden,

was z.B. mit nachfolgendem Befehl durchgeführt werden kann:

# wget --content-disposition https://www.identrust.com/node/935 -P /opt/dehydrated-master/certs/tachtler.net/
--2018-10-12 07:01:35--  https://www.identrust.com/node/935
Resolving www.identrust.com (www.identrust.com)... 192.35.177.67
Connecting to www.identrust.com (www.identrust.com)|192.35.177.67|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 893 [application/octet-stream]
Saving to: ‘/opt/dehydrated-master/certs/tachtler.net/trustidrootx3_chain.p7b’

100%[======================================>] 893         --.-K/s   in 0.06s

2018-10-12 07:01:36 (13.6 KB/s) - ‘/opt/dehydrated-master/certs/tachtler.net/trustidrootx3_chain.p7b’
saved [893/893]

Anschließend soll die Datei vom Format p7b in das Format pem mit nachfolgendem Befehl umgewandelt und umbenannt werden:

# openssl pkcs7 -in /opt/dehydrated-master/certs/tachtler.net/trustidrootx3_chain.p7b -inform DER -print_certs -out DST_Root_CA_X3.pem
# vim  /opt/dehydrated-master/certs/tachtler.net/DST_Root_CA_X3.pem
subject=/O=Digital Signature Trust Co./CN=DST Root CA X3
issuer=/O=Digital Signature Trust Co./CN=DST Root CA X3
-----BEGIN CERTIFICATE-----
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----

Anschließend kann mit nachfolgendem Befehl überprüft werden, ob alle Dateien richtig erstellt wurden:

# ls -l /opt/dehydrated-master/certs/*
/opt/dehydrated-master/certs/tachtler.net:
total 44
-rw------- 1 root root 1704 Aug 30 09:12 cert-1535613155.csr
-rw------- 1 root root 2508 Aug 30 09:12 cert-1535613155.pem
lrwxrwxrwx 1 root root   19 Aug 30 09:12 cert.csr -> cert-1535613155.csr
lrwxrwxrwx 1 root root   19 Aug 30 09:12 cert.pem -> cert-1535613155.pem
-rw------- 1 root root 1680 Aug 30 09:12 chain-1535613155.pem
lrwxrwxrwx 1 root root   20 Aug 30 09:12 chain.pem -> chain-1535613155.pem
-rw-r--r-- 1 root root 1314 Oct 12 07:07 DST_Root_CA_X3.pem
-rw------- 1 root root 4188 Aug 30 09:12 fullchain-1535613155.pem
lrwxrwxrwx 1 root root   24 Aug 30 09:12 fullchain.pem -> fullchain-1535613155.pem
-rw-r--r-- 1 root root 1647 Oct 12 06:45 Let_s_Encrypt_Authority_X3.pem
-rw-r--r-- 1 root root 1647 Jan 20  2018 Let_s_Encrypt_Authority_X4.pem
-rw------- 1 root root 3243 Aug 30 09:12 privkey-1535613155.pem
lrwxrwxrwx 1 root root   22 Aug 30 09:12 privkey.pem -> privkey-1535613155.pem
-rw------- 1 root root 2549 Aug 30 09:20 tachtler.net.pem
-rw-r--r-- 1 root root  893 Oct 12 07:01 trustidrootx3_chain.p7b

FINGERPRINT erstellen

Die in vorhergehenden Bereich erstellten Zertifikate

  • tachtler.net.pem
  • Let_s_Encrypt_Authority_X3.pem
  • Let_s_Encrypt_Authority_X4.pem
  • DST_Root_CA_X3.pem

sollen nun als Grundlage zur Erstellung der FINGERPRINTs verwendet werden.

Nachfolgende Befehle erstellen nun die base64 FINGERPRINTs für die jeweils einzelnen Zertifikate:

FINGERPRINT: tachtler.net

# openssl x509 -pubkey < /opt/dehydrated-master/certs/tachtler.net/tachtler.net.pem | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64
reoYu6y4qPE3Blm9PMCjogm8J7/vgpQsOt51hiLKCl8=

FINGERPRINT: Let's Encrypt Authority X3 (Aktive)

# openssl x509 -pubkey < /opt/dehydrated-master/certs/tachtler.net/Let_s_Encrypt_Authority_X3.pem | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64
YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=

FINGERPRINT: Let's Encrypt Authority X4 (Backup)

# openssl x509 -pubkey < /opt/dehydrated-master/certs/tachtler.net/Let_s_Encrypt_Authority_X4.pem | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64
sRHdihwgkaib1P1gxX8HFszlD+7/gTfNvuAybgLPNis=

FINGERPRINT: DST Root CA X3 (Cross Signed)

# openssl x509 -pubkey < /opt/dehydrated-master/certs/tachtler.net/DST_Root_CA_X3.pem | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64
Vjs8r4z+80wjNcr1YKepWQboSIRi63WsWXhIMN+eWys=

Apache Konfiguration

Nachfolgender eine kurze Einführung in den Aufbau eines HPKP-Eintrags:

Parameter Erläuterung
Header always set Public-Key-Pins Apache-Webserver Header Direktive
pin-sha256 Der Parameter beinhaltet einen base64 kodierten „Subject Public Key Information“ (SPKI) Fingerprint. Es ist auch möglich mehrere Pins zu verschiedenen öffentlichen Schlüsseln zu definieren. Einige Browser werden hier zukünftig neben SHA-256 evtl. weitere Hash-Algorithmen erlauben.
max-age Die Zeit in Sekunden, die ein Browser sich merken soll, dass auf diese Seite nur bei Benutzung eines der öffentlichen Schlüssel zugegriffen werden darf.
includeSubdomains Optional - Wenn dieser optionale Parameter angegeben wird, wird die Regel auch auf alle Subdomains der Seite angewandt.
report-uri Optional - Wenn dieser optionale Parameter angegeben wird, werden Pinvalidierungsfehlschläge an die angegebene URL gemeldet.

/etc/httpd/conf/httpd.conf

Nachfolgend kann durch die ermittelten FINGERPRINTs nun der HPKP-Eintrag für die Konfiguration wie folgt erstellt werden:

<IfModule headers_module>
        Header set Public-Key-Pins "pin-sha256=\"reoYu6y4qPE3Blm9PMCjogm8J7/vgpQsOt51hiLKCl8=\"; pin-sha256=\"YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=\"; pin-sha256=\"sRHdihwgkaib1P1gxX8HFszlD+7/gTfNvuAybgLPNis=\"; pin-sha256=\"Vjs8r4z+80wjNcr1YKepWQboSIRi63WsWXhIMN+eWys=\"; max-age=90; includeSubdomains;"
</IfModule>

Nachfolgende Seite welche unter dem externen Link

kann dazu verwendet werden, um die erfolgreiche Implementierung von HPKP zu validieren.

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/let_s_encrypt_-_hpkp.txt · Zuletzt geändert: 2021/03/06 11:00 von klaus