|
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
War das miniHowTo interessant/nützlich? |
ja |
|
100% |
[ 2 ] |
nein |
|
0% |
[ 0 ] |
|
Stimmen insgesamt : 2 |
|
Autor |
Nachricht |
neobiker
Moderator
Anmeldungsdatum: 11.08.2005 Beiträge: 601 Wohnort: Nürnberg / Umgebung
|
Verfasst am: 01 Nov 2005 19:10 Titel: miniHowTo: Eigene CA und Zertifikate erstellen - Teil 1 |
|
|
miniHowTo: Eigene CA und Zertifikate erstellen - Teil 1
Im folgenden beschreibe ich, wie man selber eine CA erstellt und damit eigene Zertifikate z.B. für den Apache erstellt und installiert.
Die Scripts make_ca und make_cert sind von mir modifiziert und um einige (eigentlich fast alle ) Kommandozeilen Optionen ergänzt worden.
Vorbereitungen:
Download im Downloadbereich unter Konfigurationsdateien - SSL CA
Dateien downloaden und entpacken Code: | server:~# tar xvjf sslCA.bz2
sslCA/
sslCA/make_ca
sslCA/make_cert
sslCA/make_crl
sslCA/show_valid
sslCA/openssl.cnf
sslCA/genrandom/
sslCA/genrandom/README
sslCA/genrandom/Makefile
sslCA/genrandom/genrandom.c
sslCA/genrandom/genrandom.o
sslCA/genrandom/genrandom
sslCA/ipsec.conf
server:~# |
Zum erstellen der eigenen CA passen wir als erstes die Konfig-Datei openssl.cnf an. Code: | server:~# cd sslCA
server:~/sslCA# vi openssl.cnf
-------------------------------------------------
# OpenSSL example configuration file for IPsec certificates.
# 2002 by Andreas Steffen, Zuercher Hochschule Winterthur
####################################################################
[ ca ]
default_ca = CA_default # The default ca section
####################################################################
[ CA_default ]
## Anpassen ##
dir = /etc/sslCA # Where everything is kept
...
[ req_distinguished_name ]
## Anpassen ##
countryName = Country Name (2 letter code)
countryName_default = DE
countryName_min = 2
countryName_max = 2
localityName = Locality Name (eg, city)
localityName_default = Webcity
0.organizationName = Organization Name (eg, company)
0.organizationName_default = WebOrg
...
...
##################################################################
[ usr_cert ]
...
# Specifies a URI where a CRL can be retrieved from
crlDistributionPoints = URI:http://ctsrv.dyndns.org/cert.crl
# Alternate Host ID (FQDN) <uncomment and edit>
subjectAltName = critical, DNS:server.home.local
# Alternate User ID (USER_FQDN) <uncomment and edit>
subjectAltName = critical, email:postmaster@home.local
... | Hier sind oben angeführte Werte anzupassen, z.B.dir = /etc/sslCA
countryName_default = DE
localityName_default = Webcity
0.organizationName_default = WebOrg
Optional (oder auskommentieren):
crlDistributionPoints = URI:http://ctsrv.dyndns.org/cert.crl
subjectAltName = critical, DNS:server.home.local
subjectAltName = critical, email:postmaster@home.local
Evtl. passt man zusätzlich gleich ipsec.conf an, wenn man später einmal Zertifikate für VPN erstellen will, z.B. für den IPCop. Die Datei ipsec.conf wird später in ein optional zu erstellendes tar-file zusammen mit dem Zertifikat gespeichert. Code: | server:~/sslCA# cat ipsec.conf
conn Roadwarrior
left=%any
right=ctsrv.dyndns.org
rightsubnet=192.168.1.0/24
rightca="C=DE, L=WebCity, O=WebOrg, OU=VPN, CN=ctsrv.dyndns.org"
network=auto
auto=start
pfs=yes |
Eigene CA erstellen:
Anschliessend kann man mit dem Befehl ./make_ca eine eigene Root-CA erstellen, z.B. mit einem 4096-Bit Schlüssel und einer Gültigkeit von 4 Jahren. Code: | server:~/sslCA# ./make_ca --bits 4096 --years 4
Don't forget to adjust ./openssl.cnf
Return to continue, CTRL-C to exit
Initialize CA and generate Root CA certificate
create some directories
initialize random seed
initialize serial numbers
generate 4096 bit RSA private key of CA
Generating RSA private key, 4096 bit long modulus
............................................++
....++
e is 65537 (0x10001)
Enter pass phrase for private/cakey.pem:
Verifying - Enter pass phrase for private/cakey.pem:
generate self-signed CA root certificate with a validity of 4 years
Enter pass phrase for private/cakey.pem:
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) [DE]:
Locality Name (eg, city) [Webcity]:
Organization Name (eg, company) [WebOrg]:
Organizational Unit Name (eg, section or CA) []:neobiker's CA
Common Name (eg, YOUR name, or SERVER name) []:CA from neobiker
Email Address (eg, YOUR email) []:webmaster@neobiker.de
list CA root certificate
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
a3:e1:10:11:80:68:9a:14
Signature Algorithm: md5WithRSAEncryption
Issuer: C=DE, L=Webcity, O=WebOrg, OU=neobiker's CA, CN=CA from neobiker/emailAddress=webmaster@neobiker.de
Validity
Not Before: Nov 1 16:43:46 2005 GMT
Not After : Oct 31 16:43:46 2009 GMT
Subject: C=DE, L=Webcity, O=WebOrg, OU=neobiker's CA, CN=CA from neobiker/emailAddress=webmaster@neobiker.de
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (4096 bit)
Modulus (4096 bit):
00:dc:2b:22:59:25:09:48:95:11:5b:53:8c:5a:ad:
3a:a8:7b:9d:50:53:d4:fd:1f:08:84:fb:9c:21:a4:
...
09:45:47
Exponent: 65537 (0x10001)
X509v3 extensions:
Netscape Cert Type:
SSL CA, S/MIME CA, Object Signing CA
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage:
Certificate Sign, CRL Sign
Signature Algorithm: md5WithRSAEncryption
91:36:6f:63:e3:96:a5:66:2e:79:88:58:aa:14:4b:72:6f:95:
f1:a0:a0:1d:a8:7b:5b:b7:0f:5c:e0:1a:b6:ad:da:db:8c:f7:
...
You can also export your root certificate cacert.pem for installation in a browser.
To make it easy for people to install your root certificate, place it on
your web site as cacert.crt with a URL to it.
# cp cacert.pem /var/www/apache2-default/cacert.crt
server:~/sslCA# | Das Passwort muss man sich sehr(!) gut merken, man braucht es immer wieder, wenn man die CA verwendet und neu erstellete Zertifikate signiert.
Eigene Zertifikate erstellen:
Mit dem Kommando ./make_cert werden eigene Zertifikate erstellt und gleich von der CA signiert.
Als Beispiel erstelle ich ein Zertifikat apache für den Apache Web-Server: Code: | server:~/sslCA# ./make_cert apache --bits 2048 --years 2 --apache
Generate private key and certificate for apache
generate 2048 bit RSA private key: private/apacheKey.pem
Generating RSA private key, 2048 bit long modulus
....+++
...........+++
e is 65537 (0x10001)
generate certificate request by host apache
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) [DE]:
Locality Name (eg, city) [Webcity]:
Organization Name (eg, company) [WebOrg]:
Organizational Unit Name (eg, section or CA) []:LAN apache
Common Name (eg, YOUR name, or SERVER name) []:server.home.local
Email Address (eg, YOUR email) []:webmaster@home.local
list apache certificate request
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=DE, L=Webcity, O=WebOrg, OU=LAN apache, CN=server.home.local/emailAddress=webmaster@home.local
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
00:d7:45:d9:70:d0:9e:3e:54:6b:a0:3f:7b:18:81:
b0:fd:36:b9:7a:97:a9:d3:02:62:bb:98:ae:aa:1a:
.......
b7:c3
Exponent: 65537 (0x10001)
Attributes:
a0:00
Signature Algorithm: md5WithRSAEncryption
10:3d:83:08:9a:39:13:ae:76:fa:3a:9b:b2:1c:40:03:a1:ad:
........
f7:51:65:82
generate and sign apache certificate: apacheCert.pem
Using configuration from ./openssl.cnf
Enter pass phrase for /root/sslCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'DE'
localityName :PRINTABLE:'Webcity'
organizationName :PRINTABLE:'WebOrg'
organizationalUnitName:PRINTABLE:'LAN apache'
commonName :PRINTABLE:'server.home.local'
emailAddress :IA5STRING:'webmaster@home.local'
Certificate is to be certified until Nov 1 16:53:19 2007 GMT (730 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Generate TGZ file (y/n) ?
Generate PKCS#12 file (y/n) ?
server:~/sslCA# |
Die Option --apache bewirkt, dass für das Zertifikat ein Schlüssel ohne Passwort erstellt und verwendet wird. Das erleichert doch den automatischen Start von Apache im Startscript erheblich - andernfalls fragt das Start-Script nämlich nach einem Passwort (u.U. auf der Console) nach...
Zum zweiten wird autom. ein Soft-Link des Hash-Wertes des Zertifikates auf das Zertifikat erzeugt - den verwendet Apache wenn er ein Zertifikat sucht.
TIP:
Bei Server-Zertifikaten (z.B. für Apache Webserver) muss der Common Name (CN) exakt so angeben werden, unter dem die URL aufgerufen wird (http://www.ctserver.org/ -> www.ctserver.org). Sonst kommt eine Warnung, dass der Servername des Zertifikates nicht mit dem Servernamen übereinstimmt.
Die Zertifikate (z.B. apacheCert.pem) und deren Schlüssel (z.B. apacheKey.pem) werden in die Verzeichnisse
certs und private
gespeichert. Von dort kopiert man sie dann z.B. in das Zielverzeichnis wie z.B. /etc/apache2/ssl.
... to be continued ... _________________ Gruss neobiker
Der Computer macht genau das, was Du ihm sagst - nicht das, was Du von ihm willst!
| Scenic P4/1.700, 750MB, SATA, RAID1, Snapshot Backups, Samba, Fritzcard ISDN, mtG-Capri / Remote-Fax (PDF-Email), CapiSuite (Wav-Email), exchange4linux / Public Folders / Outlook, DSL-WLAN-Router (NAT / Firewall !) vor XEN-Endian Firewall 2.1 (RED, ORANGE, GREEN), WLAN, VPN, DMZ, Squirrelmail (SSL), WWW (SSL) |
|
|
Nach oben |
|
|
frickelpit
Moderator
Anmeldungsdatum: 10.08.2005 Beiträge: 325 Wohnort: DE/BY/AB
|
Verfasst am: 07 März 2006 16:52 Titel: |
|
|
Hmmm ...bleib hier in der Konsole hängen:
Code: | server:~/sslCA# ./make_ca --bits 4096 --years 4
Don't forget to adjust ./openssl.cnf
Return to continue, CTRL-C to exit
Initialize CA and generate Root CA certificate
create some directories
initialize random seed |
"genrandom" hab ich wie es im Makefile steht compiliert und nach /usr/local/lib installiert.
Jemand einen Tip übrig?
Pit _________________ OS: ctserver v1.1, Host-Kernel 2.6.12-ct-1, UML-Kernel IPCop 2.4.31-bs2
Software: capi4hylafax, capisuite, isdnutils, hylafax, vbox3, raccess4vbox3, vbox addons, postfix, spamassassin, squirrelmail, avelsieve, e4l, rsync...
Hardware: ASUS P4T533, P4 2,5GHz, 512MB RAM, 160GB+250GB Samsung, Netgear 4xGA311(NIC) 2xG608 (Switch), WLAN Sinus 154 DSL Basic 3, Fritz!X USB v1 |
|
Nach oben |
|
|
neobiker
Moderator
Anmeldungsdatum: 11.08.2005 Beiträge: 601 Wohnort: Nürnberg / Umgebung
|
Verfasst am: 07 März 2006 17:42 Titel: |
|
|
Ja...
einfach warten... dauert sehr lange... mehrere (!) Minuten
Default sind nur 2048 Bits, dauerte über 7 Minuten: Code: | server:~/sslCA# time ./make_ca; date
Don't forget to adjust ./openssl.cnf
Return to continue, CTRL-C to exit
Initialize CA and generate Root CA certificate
create some directories
initialize random seed
...
initialize serial numbers
generate 2048 bit RSA private key of CA
Generating RSA private key, 2048 bit long modulus
.................................+++
.....................................................+++
...
real 7m18.312s
user 0m3.520s
sys 0m0.099s
server:~/sslCA#
|
_________________ Gruss neobiker
Der Computer macht genau das, was Du ihm sagst - nicht das, was Du von ihm willst!
| Scenic P4/1.700, 750MB, SATA, RAID1, Snapshot Backups, Samba, Fritzcard ISDN, mtG-Capri / Remote-Fax (PDF-Email), CapiSuite (Wav-Email), exchange4linux / Public Folders / Outlook, DSL-WLAN-Router (NAT / Firewall !) vor XEN-Endian Firewall 2.1 (RED, ORANGE, GREEN), WLAN, VPN, DMZ, Squirrelmail (SSL), WWW (SSL) |
|
|
Nach oben |
|
|
frickelpit
Moderator
Anmeldungsdatum: 10.08.2005 Beiträge: 325 Wohnort: DE/BY/AB
|
Verfasst am: 07 März 2006 23:28 Titel: |
|
|
Ahja....mal wieder etwas ungeduldig gewesen. Allerdings dauert es bei mir erheblich länger, so ca. 20 Minuten bei 2048 Bit
Thx
Pit _________________ OS: ctserver v1.1, Host-Kernel 2.6.12-ct-1, UML-Kernel IPCop 2.4.31-bs2
Software: capi4hylafax, capisuite, isdnutils, hylafax, vbox3, raccess4vbox3, vbox addons, postfix, spamassassin, squirrelmail, avelsieve, e4l, rsync...
Hardware: ASUS P4T533, P4 2,5GHz, 512MB RAM, 160GB+250GB Samsung, Netgear 4xGA311(NIC) 2xG608 (Switch), WLAN Sinus 154 DSL Basic 3, Fritz!X USB v1 |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Powered by phpBB © 2001, 2005 phpBB Group.
|