It is currently 26.07.2017 22:37


All times are UTC




Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: Zertifikate erstellen (Linux)
PostPosted: 26.02.2005 19:17 
Tripple-DES
Tripple-DES

Joined: 18.02.2005 11:50
Posts: 43
Wie komme ich unter linux an meine certs


Vorwort:
es gibt ne viel zahl von möglichkeiten Certs zu erstellen,... manche machen es sich gern umständlich andere nicht ;) ..im endeffekt kann man unter linux 1a die mitgelieferten easy-rsa scripts verwenden,... klappt damit 1a wenn man weiss wie der ganze ssl/tls humbuk klappt ;)
...,oder man machts mit der hand so wie ich :roll: :


als erstes zur info!!!
das hier:
Code:
howto@linux ~ $
das ist der prompt von meinem rechner ^^ ...also net vergessen, das bitte nicht mit eingeben!!!


zum Verständnis:

was wird gebraucht?
Code:
Server
- dh-parm    (nur am server)
- ca              (das gleiche ca wie auch die clients brauchen)
- crt             (crt welches mit dem ca erstellt wurde - speziel für den server angefertigt)
- key            (key welcher mit dem ca erstellt wurde - speziel für den server angefertigt)

Client

- ca              (das gleiche ca wie am server liegt)
- crt             (crt welches mit dem ca erstellt wurde - speziel für den client angefertigt )
- key            (key welcher mit dem ca erstellt wurde - speziel für den client angefertigt)


...zur umsetzung (vorbereitung) :

Als erstes erstellen wir uns zur über sicht n verzeichniss in dem wir arbeiten wollen,... hab das verzeichnis jetzt mal ssl genannt und direkt im eigenen home:
Code:
howto@linux ~ $ mkdir ~/ssl


Als nächstes holen wir uns aus dem openvpn-2.0 tarbal vom verzeichniss easy-rsa die dateien 'var' und 'openssl.cnf'

Code:
howto@linux ~ $ cp ...(path-to)..../openvpn-2.0_rc16/easy-rsa/vars ~/ssl/
howto@linux ~ $ cp ...(path-to)..../openvpn-2.0_rc16/easy-rsa/openssl.cnf ~/ssl/


des sollte jetzt so aussehen:
Code:
howto@linux ssl $ ls -l
total 12
-rw-r--r--  1 howto users 7495 Feb 26 19:13 openssl.cnf
-rw-r--r--  1 howto users  265 Feb 26 19:09 vars


jetzt werden wir in der datei vars mit dem lieblings-editor ein paar enderungen vornehmen
- die variablen zu unseren wünschen anpassen ...is ne echte arbeits erleichterung
- danach fügen wir noch folgendes ans ende der datei an:
wichtig,... ich geh davon aus das ihr auch wie ich im homedir/ssl arbeitet (~/ssl/)
Code:
export OPENSSL_CONF=~/ssl/openssl.cnf
mit der env-variable OPENSSL_CONF sagen wir openssl welche config es standardmäsig nehmen soll.

die datei openssl können wir so lassen wie sie ist,...

so jetzt erstellen wir des verzeichniss für ca crts und keys und die nötigen dateien zur erstellung der crts und keys
Code:
howto@linux ssl $ mkdir ~/ssl/keys
howto@linux ssl $ touch ~/ssl/keys/index.txt
howto@linux ssl $ echo 01 > ~/ssl/keys/serial


ACHTUNG:
wenn iher das verzeichniss keys nicht erstellt passiert das hier:
Code:
howto@linux ssl $ openssl req -days 3650 -nodes -new -x509 -keyout ~/ssl/keys/ca.key -out ~/ssl/keys/ca.crt
Generating a 1024 bit RSA private key
............++++++
.........................................++++++
writing new private key to '/home/howto/ssl/keys/ca.key'
/home/howto/ssl/keys/ca.key: No such file or directory
14385:error:02001002:system library:fopen:No such file or directory:bss_file.c:278:fopen('/home/howto/ssl/keys/ca.key','w')
14385:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:280:
man kann schön erkennen: No such file or directory:bss_file.c:278:fopen('/home/howto/ssl/keys/ca.key','w')
...mir schön öfters passiert,... und auch nicht vergessen die datei index.txt (leerer inhalt) erstellen und die datei serial (mit der serial drinn, also zum start mit 01 drinnen beginnen!!!) gibt sonnst auch fehler.


...zur umsetzung (erstellung) :

um die env variablen zu setzen fürhen wir nun die datei 'var' aus:
wichtig dabei: der punkt dann leer und dann vars, der punkt und des leer gibt an das die datei vars ausgeführt werden soll.
Code:
howto@linux ssl $ . vars


- ca
als erstes erstellen wir uns des 'ca' welches wir auf allen teilnehmern unseres openvpn-netzes haben
Code:
howto@linux ssl $ openssl req -days 3650 -nodes -new -x509 -keyout ~/ssl/keys/ca.key -out ~/ssl/keys/ca.crt


- Diffie Hellman parameter

jetzt können wir den Diffie Hellman parameter für den Server basteln
dieser sollte so gross sein wie die Bits der ca, crts und keys,...
Code:
howto@linux ssl $ openssl dhparam -out ~/ssl/keys/dh1024.pem 1024


alternative: (wenn es mal etwas länger, oder zulang dauert,...)
wenn ihr mal einen grösseren parameter erstellen wollt,... werdet ihr schnell raus finden des des so lang dauern kann das man zwischenzeitlich ne kaffemaschiene leer saufen kann und n risenkarton snickers verdrücken kann. Da ich net will das euch schlecht wird versucht das mal:
LÖSUNG: wir starten des ganze mit nohup davor und ein & am ende ^^
Code:
howto@linux ssl $ nohup openssl dhparam -out ~/ssl/keys/dh1024.pem 1024 &

es passiert vollgendes:
- durch das nohup wird der prozess so gestartet das es durch kein signal beendet wird, des heisst wenn man über ssh oder putty arbeitet und die session schliesst läuft der prozess weiter bis er abgeschlossen is
- durch des & am ende, wird der cursor wirder freigegeben,... toll oder ? man kann gleich weiter arbeiten aber net wundern wenns nu etwas langsamer läuft,... die parametererstellung frist viel prozessorleistung


- Zertifikat für Server

jetzt alles schön der reine nach,...
- zuerst den key
- dann das cert für den key
und dazwischen immer schön bestätigen
Code:
howto@linux ssl $ openssl req -days 3650 -nodes -new -keyout ~/ssl/keys/server.key -out ~/ssl/keys/server.csr
howto@linux ssl $ openssl ca -days 3650 -out ~/ssl/keys/server.crt -in ~/ssl/keys/server.csr -extensions server


- Zertifikat für die Clients

jetzt kommen die Clients, die prozedur is immer wieder und wieder die gleiche,... (achtung: cn(common name) immer n unterschiedlichen wählen)
den rest bitte gleich wie beim ca und dem server-cert sonnst gibts probleme bei der verbindungsaufnahme
- zuerst den key
- dann wieder das cert für den key
und wieder dazwischen immer wieder schon bestätigen

client 1:
Code:
howto@linux ssl $ openssl req -days 3650 -nodes -new -keyout ~/ssl/keys/client-1.key -out ~/ssl/keys/client-1.csr
howto@linux ssl $ openssl ca -days 3650 -out ~/ssl/keys/client-1.crt -in ~/ssl/keys/client-1.csr


client 2:
Code:
howto@linux ssl $ openssl req -days 3650 -nodes -new -keyout ~/ssl/keys/client-2.key -out ~/ssl/keys/client-2.csr
howto@linux ssl $ openssl ca -days 3650 -out ~/ssl/keys/client-2.crt -in ~/ssl/keys/client-2.csr


client 3:
Code:
howto@linux ssl $ openssl req -days 3650 -nodes -new -keyout ~/ssl/keys/client-3.key -out ~/ssl/keys/client-3.csr
howto@linux ssl $ openssl ca -days 3650 -out ~/ssl/keys/client-3.crt -in ~/ssl/keys/cleint-3.csr

....und so weiter.


...fertig

ich hoff das ihr etz verstanden habt, ich es net zu umständlich erklärt hab und ich euch helfen konnte ^^

jedenfalls
- aus dem ca raus werden die keys und crts raus erstellt,...
- der cn muss unterschiedlich sein, der rest bleibt gleich

...noch fragen ? ^^



---INFO---

wenn fehler sind, PM an mich, dann werd ich des ausbessern, danke


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 27.02.2005 20:42 
AES 256 bit
AES 256 bit
User avatar

Joined: 04.06.2004 12:08
Posts: 363
Location: Hannover
Hi unique,

ich werd das mal oben anpinnen - finde es sehr hilfreich!

dan


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 12.10.2005 11:28 
Tripple-DES
Tripple-DES

Joined: 28.09.2005 12:44
Posts: 17
hört sich ja ganz easy an. könnte jemand sowas auch für windows schreiben?
ich hab da nämlich echt probleme certificate für clients zu machen die so im lauf der benötigt werden


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 18.01.2006 10:04 
Tripple-DES
Tripple-DES

Joined: 18.02.2005 11:50
Posts: 43
hallihallo ^^

des is auch im prinzip ganz einfach, wenn man erst mal dahinter gekommen is wie des funktioniert ^^ hab anfangs auch so meine start probleme gehabt. ;)

Diese Howto sollte unter windows ähnlich klappen, die befehle sind ja exakt die gleichen und die argumente dahinter fast auch.

Das einzigste was beachtet werden muss is die unterschiedliche dateisymantik,...

z.B. !!! <--(genau, und laut FHS gibts keine /programme unter linux ^^ is ja auch nur n beispiel ^^)
Code:
  linux --> /programme/test.txt
windows --> c:\programme\test.txt
oder möglicherweise auch:
windows --> c://programme//test.txt


tip:
falls des mal nicht klappen sollte mit einem " \ " dann verwende man einfach " // " zur pfadangabe
also z.B. c://programme//test.txt

zusätliche infos im hintergrund:
das phänomen mit \ und // tritt auf wenn für unix/linux vorgesehene software anstatt auf linux z.B. auf windows mit cygwin übersezt wird.

cygwin ist ein programm zum compilieren von u.a. opensource-quellcodes auf windows.

im internet finden sich genauere und detailirtere infos drüber wen es intressiert.

_________________
...so ich geh etz mal wieder bissi googlen ^^ , weil googlen macht schlau ;)

solong
unique


Top
Offline Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ]  Moderator: Moderators

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Theme created StylerBB.net