Openssl: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
(28 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Auflistung einiger Beispiele für openssl: (Mehr Informationen auf www.openssl.org)
+
*[[tls funktion]]
 
+
*[[TLS Prinzip]]
 
+
*[[openssl howto one]]
== Prinzip ==
+
*[[openssl howto two]]
 
+
*[[openssl tests]]
=== Signieren ===
+
*[[ca install]]
 
+
*[[xinuxpki]]
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 ...
+
*[[X509 ruck zuck]]
+
*[[X509 Begriffe]]
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
 
==show==
 
openssl x509 -noout -text -in huey.xinux.org.crt
 
<pre>
 
openssl x509 -noout -text -in huey.xinux.org.crt  | grep -A 4 "X509v3 extensions"
 
        X509v3 extensions:
 
            X509v3 Extended Key Usage:
 
                TLS Web Server Authentication
 
            X509v3 Subject Alternative Name:
 
                DNS:huey.xinux.org
 
 
 
</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
 

Version vom 15. Oktober 2020, 06:57 Uhr