|
|
| (48 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| '''Auflistung einiger Beispiele für openssl: (Mehr Informationen auf www.openssl.org)
| | =Main= |
| | *[[TLS vs. SSL]] |
| | *[[tls funktion]] |
| | *[[TLS Prinzip Simple]] |
| | *[[TLS Prinzip]] |
| | *[[TLS Protokoll]] |
| | *[[openssl howto]] |
| | *[[ca install]] |
| | *[[xinuxpki]] |
| | *[[X509 ruck zuck]] |
| | *[[X509 Begriffe]] |
| | *[[Letsencrypt]] |
| | *[[SSL Inspection]] |
| | *[[Site inspection]] |
| | *[[acme.json]] |
| | *[[XCA]] |
| | *[[openssl Tools]] |
| | *[[Container-Formate für Zertifikate]] |
| | *[[Openssl Skripte]] |
| | *[[Zentrale Einbindung von TLS-Zertifikaten für Mail- und Webdienste]] |
|
| |
|
| | | =Links= |
| == Prinzip ==
| | *https://github.com/wpbrown/openssl-keylog |
| | |
| === Signieren ===
| |
| | |
| Wenn man einen Webserver hat und will diesen nun verschlüsselt betreiben generiert man ein Schlüsselpaar einen privkey-s und einen pubkey-s. Den Pubkey-s schickt man nun an einen Zertifizerungsstelle, diese bildet nun einen Hashwert hash-s (der einfachste Hash ist eine Quersumme wie in der Schule). dieser hash wird nun mit dem privkey-ca verschlüsselt, das Teil nennt man nun signature-s diese wird an den pubkey-s angehängt, man nennt dies nun certifkat-s und es wird zum Server zurück geschickt ...
| |
|
| |
| man baut dies dann in seinen Websever ein ... fertig
| |
| | |
| [[Datei:signierung.jpg]]
| |
| | |
| === Authentifzieren ===
| |
| | |
| Wenn nun ein client auf den Webserver zugreift macht er eine Anfrage ... der Server schickt nun das certifikat-s zum Client ... der teilt nun dieses wieder auf in pubkey-s und signature-s und bildet einen hash aus dem pubkey-s genau wie vorher in der Zertifzierungstelle. nennen wir diesen mal X ... so und nun kommst: die signature-s haben wir bekommen als in der zertifizierungstelle den hash-s mit dem privkey-ca verschlüsselt haben ... wenn wir nun die signature-s wieder mit dem pubkey-ca verschlüsseln haben wir wieder den orginal hash-s denn wir nun Y nennen ...
| |
|
| |
| wenn X = Y ist die authentifzierung erfolgreich ...
| |
| | |
| [[Datei:auth.jpg]]
| |
| | |
| == client name setzen ==
| |
| | |
| CLIENT="client"
| |
| | |
| | |
| == CA erstellen ==
| |
| | |
| | |
| === 3des ===
| |
| openssl genrsa -des3 -out ca.key 1024
| |
| | |
| == CA selbst signieren ==
| |
| openssl req -new -key ca.key -x509 -days 3650 -out ca.crt
| |
| | |
| == Erstellen eines Privat Keys ==
| |
| openssl genrsa -des3 -out ${CLIENT}.key 1024
| |
| | |
| == Erstellen einer CSR (Certificate Signing Request): ==
| |
| openssl req -new -key ${CLIENT}.key -out ${CLIENT}.csr
| |
| | |
| == Key signieren ==
| |
|
| |
| openssl x509 -req -days 730 -in ${CLIENT}.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out ${CLIENT}.crt
| |
| | |
| == Überprüfung der Gültigkeit eines Zertifikates: ==
| |
| openssl verify -CAfile ca.crt ${CLIENT}.crt
| |
|
| |
| client.crt: OK
| |
| | |
| == Anzeigen des Zertifikat ==
| |
| openssl x509 -noout -text -in ${CLIENT}.crt
| |
| | |
| == Auslesen des Subjects und Serial-Nr.: ==
| |
| openssl x509 -noout -subject -serial -in ${CLIENT}.crt
| |
|
| |
| subject= /C=de/ST=rlp/L=zweibruecken/O=xinux/OU=edv/CN=client/emailAddress=technik@xinux.de
| |
| serial=F5006B108B6B267B
| |
| | |
| == Erstellen einer CRL (Certificate Revoke Liste): ==
| |
| | |
| openssl ca -config <Konfigurationsdatei> -gencrl -out <CRL-file>
| |
| | |
| == Umwandeln der CRL ins DER-Format (Notwendig zum Importieren): ==
| |
| | |
| openssl crl -inform PEM -outform DER -in <CRL-File> -out <CRL-File im DER-Format>
| |
| | |
| == Zurückrufen (revoke) eines Zertifikates: ==
| |
| | |
| openssl ca -config <Konfigurationsdatei> -revoke <Zertifikat>
| |
| | |
| == Request signieren: ==
| |
| | |
| openssl ca -notext -in request.req -out signiert.pem
| |
| | |
| | |
| == Aufbau einer SSL Verbindung mit einem Server: ==
| |
| | |
| openssl s_client -connect <server>:<Port>
| |
| | |
| | |
| == Starten eines SSL-Servers ==
| |
| | |
| openssl s_server -CAfile <Zertifikat> -key <Privat key der CA> -cert <Zertifikat des Servers> -accept <Port> -WWW
| |
| | |
| -WWW : Emuliert einen einfachen Web-server auf angeegenen Port
| |
| | |
| P12 = PFX
| |
| | |
| ==Umwandlung von pem in PKCS12 Format==
| |
| ===Mit CA certifikat===
| |
| openssl pkcs12 -export -in cert.pem -inkey key.pem -certfile ca.crt -out cred.p12
| |
| ===Ohne CA certifikat===
| |
| openssl pkcs12 -export -in cert.pem -inkey key.pem -out cred.p12
| |
| | |
| | |
| ===openssl P12->PEM===
| |
| | |
| Um Windows Zertifikate unter Linux/openssl verwenden zu können, müssen aus der keyfile.p12-Datei die x509 Zertifikate exportiert werden.
| |
| | |
| openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12
| |
| openssl pkcs12 -cacerts -nokeys -out root.pem -in cert.p12
| |
| openssl pkcs12 -nocerts -out private-key.pem -in cert.p12
| |
| | |
| ===Jetzt können diese wieder verwendet werden.===
| |
| | |
| openssl x509 -text -noout -md5 -in private-key.pem
| |
| openssl x509 -text -noout -md5 -in root.pem
| |
| openssl x509 -text -noout -md5 -in cert.pem
| |
| | |
| ===pkcs12 Container entpacken===
| |
| ====Ca.crt====
| |
| root@hutze:~/p12# openssl pkcs12 -in <pkcs12-datei> -cacerts -nomacver -nokeys -out <ca.crt> -password pass:geheim
| |
| | |
| ====Client.crt====
| |
| root@hutze:~/p12# openssl pkcs12 -in <pkcs12-datei> -clcerts -nomacver -nokeys -out <client.crt> -password pass:geheim
| |
| | |
| ====Client.key====
| |
| root@hutze:~/p12# openssl pkcs12 -in <pkcs12-datei> -nocerts -nodes -nomacver -out <client.key> -password pass:geheim
| |
| =reqext in $CLIENT.cnf=
| |
| [ server-ext ]
| |
| extendedKeyUsage = serverAuth, 1.3.6.1.5.5.8.2.2
| |
| subjectAltName = DNS:huey.xinux.org
| |
| ==request==
| |
| openssl req -new -key ${CLIENT}.key -out ${CLIENT}.csr -config ${CLIENT}.cnf -reqexts server-ext
| |
| | |
| ==show==
| |
| openssl req -text -noout -in $CLIENT.csr
| |
| <pre>
| |
| Certificate Request:
| |
| Data:
| |
| Version: 0 (0x0)
| |
| Subject: C=de, ST=rlp, L=zw, O=willux, OU=it, CN=huey.xinux.org
| |
| Subject Public Key Info:
| |
| Public Key Algorithm: rsaEncryption
| |
| Public-Key: (1024 bit)
| |
| Modulus:
| |
| 00:e2:7e:7c:c0:af:d7:67:9d:f6:f7:5c:51:95:60:
| |
| 40:9b:be:6a:1b:be:67:ea:86:ec:ee:b1:4a:d3:9c:
| |
| 3c:88:dd:14:a0:51:7e:0d:ea:fa:0f:13:ed:66:d6:
| |
| b3:c9:0c:da:33:65:f3:a8:77:6e:95:43:d8:84:c7:
| |
| 14:cc:cd:d5:42:bb:b6:61:b3:9c:4e:8a:80:7e:25:
| |
| 9b:bf:fd:8d:88:cf:95:bf:32:3c:d7:e7:ca:dd:0a:
| |
| 73:0c:d0:4b:a6:48:73:3c:0a:68:90:2b:14:e3:71:
| |
| c2:85:a1:b2:5e:02:2d:77:fc:be:fb:5a:c7:e8:47:
| |
| 8d:34:54:ea:57:02:9c:a8:23
| |
| Exponent: 65537 (0x10001)
| |
| Attributes:
| |
| Requested Extensions:
| |
| X509v3 Extended Key Usage:
| |
| TLS Web Server Authentication, 1.3.6.1.5.5.8.2.2
| |
| X509v3 Subject Alternative Name:
| |
| DNS:huey.xinux.org
| |
| Signature Algorithm: sha256WithRSAEncryption
| |
| 2d:8c:0e:fe:06:37:32:39:47:91:e8:7e:5e:33:47:6b:64:76:
| |
| 3e:6e:43:b0:0d:16:42:01:ac:70:2b:a7:2f:78:cb:ad:04:51:
| |
| 37:68:6f:51:0d:4c:ef:ea:7e:14:83:cd:63:d1:e8:aa:15:2a:
| |
| 53:eb:e7:c6:0c:28:f4:67:ef:bc:40:88:f4:f7:b0:a5:39:9d:
| |
| 86:3f:15:95:38:d7:4c:33:8e:9c:66:0f:e9:1f:d0:32:df:7a:
| |
| 5d:a3:67:89:8b:7d:81:67:23:46:9d:ab:31:eb:e3:a4:3d:4e:
| |
| ab:bd:78:4d:78:81:91:db:8d:34:f7:8b:21:c2:34:26:0b:d3:
| |
| d1:94
| |
| </pre>
| |
| ==sign==
| |
| openssl x509 -CA ca.crt -CAkey ca.key -CAserial serial -sha1 -in $COMMON_NAME.csr -req -out $COMMON_NAME.crt -extfile $COMMON_NAME.cnf -extensions server-ext
| |
| | |
| | |
| <pre>
| |
| openssl x509 -noout -text -in huey.xinux.org.crt
| |
| Certificate:
| |
| Data:
| |
| Version: 3 (0x2)
| |
| Serial Number: 52 (0x34)
| |
| Signature Algorithm: sha1WithRSAEncryption
| |
| Issuer: C=de, ST=rlp, L=zweibruecken, O=xinux, OU=edv, CN=xinux-ca/emailAddress=technik@xinux.de
| |
| Validity
| |
| Not Before: Oct 31 11:16:17 2014 GMT
| |
| Not After : Oct 28 11:16:17 2024 GMT
| |
| Subject: C=de, ST=rlp, L=zweibruecken, O=xinux, OU=edv, CN=huey.xinux.org/emailAddress=technik@xinux.de
| |
| Subject Public Key Info:
| |
| Public Key Algorithm: rsaEncryption
| |
| Public-Key: (2048 bit)
| |
| Modulus:
| |
| 00:d9:2e:30:3f:d7:39:bf:d2:10:5c:b2:cc:36:0a:
| |
| d3:84:fe:51:dd:82:d2:a8:56:69:cd:0c:d7:8f:60:
| |
| e3:58:69:ba:52:ec:13:09:d9:12:8d:21:4c:5f:bf:
| |
| d0:6b:a8:d4:28:57:a2:6d:f3:2e:dd:3c:aa:9b:2a:
| |
| bd:73:8a:60:7a:e1:65:00:af:de:bb:3b:e7:ee:12:
| |
| 1d:9a:0f:bb:86:a2:0a:21:11:d6:93:b7:69:e2:85:
| |
| 70:b4:95:0c:87:a4:36:4a:d0:56:eb:2c:f0:b6:26:
| |
| f9:93:42:ad:70:48:d4:30:2b:ca:c8:e0:83:6d:83:
| |
| e4:06:c0:a1:ce:64:31:05:4c:96:b7:cb:9a:5d:f6:
| |
| 47:54:52:d3:a3:68:d0:3e:33:4d:89:19:4f:cd:ef:
| |
| 67:fc:48:27:42:7a:79:c2:56:95:d3:f8:00:43:c9:
| |
| 48:d7:42:62:39:73:6b:83:f8:3e:32:95:f2:53:12:
| |
| f1:5e:e4:fb:09:e0:52:8f:55:6e:47:cd:00:3f:49:
| |
| 94:79:17:e9:30:68:d5:84:d9:0f:2c:0a:76:9a:37:
| |
| 80:f0:57:05:9b:2e:2d:40:33:c9:65:f3:2d:10:56:
| |
| fa:46:e4:d0:04:68:b4:28:be:09:ee:3c:89:da:79:
| |
| b8:5e:87:a1:c9:6e:01:c7:e0:7e:17:a7:87:bb:f9:
| |
| 44:0f
| |
| Exponent: 65537 (0x10001)
| |
| X509v3 extensions:
| |
| X509v3 Extended Key Usage:
| |
| TLS Web Server Authentication
| |
| X509v3 Subject Alternative Name:
| |
| DNS:huey.xinux.org
| |
| Signature Algorithm: sha1WithRSAEncryption
| |
| 75:ad:aa:59:3f:d9:41:0f:b3:5d:06:3c:24:0e:6f:bb:6e:ee:
| |
| 39:04:d0:f2:24:e8:38:ce:23:69:20:c2:1a:61:5e:48:b6:39:
| |
| 1d:95:35:9c:88:98:72:d3:7b:c6:a2:ad:f5:b8:de:96:e4:e0:
| |
| d7:89:1a:de:9e:06:c5:40:aa:27:fd:aa:91:dd:cf:31:88:fc:
| |
| dc:6c:fe:83:be:02:7d:2b:cb:1e:4e:82:a9:1e:d4:eb:a9:a5:
| |
| 1c:6c:82:d4:52:34:f5:60:11:c5:ea:f7:18:95:ff:10:58:d1:
| |
| 1b:ab:4a:6e:c2:2e:e8:1b:8c:3c:14:3f:2e:40:94:f8:8c:cd:
| |
| ff:10:a3:e4:10:37:6a:8a:b9:f9:df:9c:51:75:3e:52:08:9d:
| |
| bc:47:c0:af:8c:9c:ba:13:48:0e:b1:21:3b:58:08:2b:45:40:
| |
| 77:52:93:b3:db:ee:f3:22:36:7b:2e:ef:77:2f:80:c3:2c:91:
| |
| 8f:a9:5f:3f:ef:d8:59:e1:19:f6:c3:4f:c1:fd:a3:f3:d3:f2:
| |
| 92:f7:c6:81:d0:da:95:d3:2e:18:20:22:c9:5e:f4:85:61:5f:
| |
| 49:68:96:83:20:03:c1:7c:56:c4:8f:dc:09:07:5b:2c:50:82:
| |
| 56:ab:5f:18:e7:a8:34:38:82:9e:6d:70:68:b7:f2:14:00:f6:
| |
| 73:43:d2:db
| |
| </pre>
| |
| | |
| ==Links==
| |
| | |
| * http://www.absolute-cool.de/dokus/ssl/openssl/ | |
| * http://www.tecchannel.de/netzwerk/wan/401848/workshop_vpn_mit_linux/index16.html
| |
| * http://www.tecchannel.de/netzwerk/wan/401848/workshop_vpn_mit_linux/
| |
| * http://www.dfn-cert.de/informationen/themen/verschluesselung_und_pki/openssl-kurzreferenz.html
| |
| * http://www.pro-ite.net/blog/index.php?/archives/218-Root-Zertifikat-dauerhaft-in-Windows-7-WIN7-speichern.html
| |