PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CACert - Zertifikaten vertrauen



SirSydom
14.01.07, 19:51
Holla!

Ich bin seit kurzem begeistertes Mitglied bei CACert (http://wiki.cacert.org) und meinen Server mit einem solchen Zertifikat ausgestattet.
Auf einer WindowsXP Kiste mit IE7 habe ich dann die Zertifikate automatisch per Skript installiert - und alles haut hin.

Auf dem Server selbst nutzt Apache2 das Zertifikat, damit auch SVN.
Problem aber ist Das der Server selbst keinen CACert Zertifikaten vertraut, zB ein
root@comefrom:~# wget https://www.comefrom.de/comefrom.gif
--20:40:13-- https://www.comefrom.de/comefrom.gif
=> `comefrom.gif'
Resolving www.comefrom.de... 84.38.64.166
Connecting to www.comefrom.de|84.38.64.166|:443... connected.
ERROR: Certificate verification error for www.comefrom.de: unable to get local issuer certificate
To connect to www.comefrom.de insecurely, use `--no-check-certificate'.
Unable to establish SSL connection. tritt auf.
Jetzt habe ich schon das Packet ca-certificates installiert. Da ist auch das Class1 Root Cert drin.
Ah, okay. Das Class 3 fehlt. Heruntergeladen, in /etc/ssl/ certs gespeichert und
openssl verify cacert_class3.org.crt

Und trotzdem immer noch:


root@comefrom:~# openssl s_client -connect www.comefrom.de:443 -showcerts
CONNECTED(00000003)
depth=0 /CN=www.comefrom.de
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /CN=www.comefrom.de
verify error:num=27:certificate not trusted
verify return:1
depth=0 /CN=www.comefrom.de
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
0 s:/CN=www.comefrom.de
i:/O=CAcert Inc./OU=http://www.CAcert.org/CN=CAcert Class 3 Root
-----BEGIN CERTIFICATE-----
MIIEKjCCAhKgAwIBAgICHO0wDQYJKoZIhvcNAQEFBQAwVDEUMB IGA1UEChMLQ0Fj
ZXJ0IEluYy4xHjAcBgNVBAsTFWh0dHA6Ly93d3cuQ0FjZXJ0Lm 9yZzEcMBoGA1UE
AxMTQ0FjZXJ0IENsYXNzIDMgUm9vdDAeFw0wNzAxMDIxMTM5ND RaFw0wOTAxMDEx
MTM5NDRaMBoxGDAWBgNVBAMTD3d3dy5jb21lZnJvbS5kZTCBnz ANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAqYIUHtfqHPxdN5W72YCSBLxynQdh/BuESYzb5AeuF2xr
PDI4UPNKMLUIiNBHgrRy8FB4eiT/B8hcnUNTUlnwIvVv1YE1mBv0cF2recVM0qP7
pqlBE3yWAX4FjUxkIUd9ryesePrLRUwPuXKirobc00hb0711H4 8s7lPdZs7M6e0C
AwEAAaOBwzCBwDAMBgNVHRMBAf8EAjAAMDQGA1UdJQQtMCsGCC sGAQUFBwMCBggr
BgEFBQcDAQYJYIZIAYb4QgQBBgorBgEEAYI3CgMDMAsGA1UdDw QEAwIFoDAyBggr
BgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLm NhY2VydC5vcmcw
OQYDVR0RBDIwMIIPd3d3LmNvbWVmcm9tLmRloB0GCCsGAQUFBw gFoBEMD3d3dy5j
b21lZnJvbS5kZTANBgkqhkiG9w0BAQUFAAOCAgEAjmxFW/VzyY0Y+sWbZbnbW9vh
k7ZCju/G6t8M2FPjOR2OYnBpKvHsPi/o21Lh9w6UDMd8zrmpUx0RhL6t2k1cmele
H3cNTa3B5BU6/OpD7H+UkNRbEuPK3LNfktXD8oBIh0Q/vfDr7xJCKO9oaHe+Pqk8
9KTaQ/E/GacXFA1NHT3pxG2ck7iutENt7cXvcA/IYRS5HOQzjMhhJYV9w15pztPI
plgPXCrxgYZBJGJFaUx6mSewksRwrohNoxLAZdLFIGVbF3ZB+1 gpkz/e3YG3iyhn
7H7S67Y9sp3S0D8Uhch8vX58n46vBZPur84K6VT6972ThedqK0 tLNLnMvn8d8rxV
BDTADdcuQTcsvZbW+Ocm+09Ev5kRqnlytFKFevvOQgpS67IiXW xy/wWeFewW+r84
5itqZEfhxu4ouGpYMpE8pM0IMcvmnYxuoki+aDjSJWHsjKfV3h feKohVA2UgYvqP
DTU3NXvmKqvs5rCfpJQJRTBXw9goJhiJVUJ4/6PL9LOxjOFBWejrMAHieTJQxyiq
pE9PSt68LpBTmYIO1eD05Hn8MBNZTvUlYAMms49U5stVJexUYn WLMarsFE058C75
N5MMj0uhca0ri9bWYoV2Cw1Xnzt7zIXY/uJNinUL+RvEwRShAVmCzs0TS8OOVC8T
YLKphGBCNdsn2GtzMs0=
-----END CERTIFICATE-----
---
Server certificate
subject=/CN=www.comefrom.de
issuer=/O=CAcert Inc./OU=http://www.CAcert.org/CN=CAcert Class 3 Root
---
No client certificate CA names sent
---
SSL handshake has read 1634 bytes and written 340 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: 986CAEFB8576630087525179788F0A58DB969E37684790F726 964428D9BAC9CE
Session-ID-ctx:
Master-Key: 5621DB494BFEE80269467AA9A5FE1033F4B4FF6663F124742E E2A333B02D6FFB10211BF76737CB705F2BB6E8A3356763
Key-Arg : None
Start Time: 1168804251
Timeout : 300 (sec)
Verify return code: 21 (unable to verify the first certificate)
---


Was mache ich denn falsch?

PS:
Noch was, wo würde man den konsequenterweise (auf einem debianoiden Linux) seine *eigenen* Zertifikate und Schlüssel speichern?
zZ liegts in /etc/apache2/ssl aber irgendwie gefällt mir das nicht - va weil ich es ja auch für postfix etc. brauche..

fuffy
14.01.07, 21:10
Hi!


PS:
Noch was, wo würde man den konsequenterweise (auf einem debianoiden Linux) seine *eigenen* Zertifikate und Schlüssel speichern?
zZ liegts in /etc/apache2/ssl aber irgendwie gefällt mir das nicht - va weil ich es ja auch für postfix etc. brauche..
Was gefällt dir daran nicht? Normalerweise hast du für Mailserver und Webserver unterschiedliche Hostnamen (z.B. www.domain.de und mail.domain.de) und das muss in den Zertifikaten berücksichtigt werden, da der Web-Browser bzw. der Mail-Client Alarm schlagen, wenn der aufgerufene Domainname nicht mit dem CN übereinstimmt.
Du brauchst also schon mal zwei unterschiedliche Zertifikate.

Gruß
fuffy

cane
14.01.07, 23:27
Was mache ich denn falsch?

Das Root-CA-Cert nicht importiert?


Noch was, wo würde man den konsequenterweise (auf einem debianoiden Linux) seine *eigenen* Zertifikate und Schlüssel speichern?
zZ liegts in /etc/apache2/ssl aber irgendwie gefällt mir das nicht - va weil ich es ja auch für postfix etc. brauche..

Einfach Kopien erstellen oder ein Folder anlegen auf das alle beteiligten Daemons Rechte haben...

mfg
cane

SirSydom
15.01.07, 00:52
Das Root-CA-Cert nicht importiert?

Genau das hab ich doch gemacht, steht doch oben? Oder was meinst du mit "importiert" ? Muss ich mehr machen als das Zertifikat in den Ordern /etc/ssl/certs zu kopieren? Wenn ja, wie mach ich das (war eigentlich meine Frage.. )




Einfach Kopien erstellen oder ein Folder anlegen auf das alle beteiligten Daemons Rechte haben...

mfg
cane

Ich denke /etc/ssl/certs werde ich auch meine eigenen certs reinlegen und die keys in /etc/ssl/private - ZUgriffsrechte auf die Keys dann natürlich nur für die speziellen daemons..

403
15.01.07, 12:28
er meint wohl sowas wie


%openssl -in XXX -CA rootCA


:rolleyes:

http://www.garex.net/apache

Oder hast du den Import nur vergessen zu erwähnen?

SirSydom
15.01.07, 13:01
Ich denke du meinst openssl ca -in, oder?
Das ist für nen certificate signing request (csr)..

openssl -in wird bei mir nicht erkannt (invalid option)

Ich bin doch gar nicht die CA. Ich will nur allen Zertifikaten vertrauen die von dieser CA (von der ich nur den public key habe) signiert wurden.
Und genau das haut nicht hin.

SirSydom
15.01.07, 21:15
Soooo :)
Ist schon fast peinlich. Auf jeden fehlte das Class 3 Root Certificat von CAcert.
Das hinzufügen in /etc/ssl/certs hätte das Problem lösen müssen, hat es auch, ich habe nur beim

openssl s_client -CApath /etc/ssl/certs/ -connect www.comefrom.de:443
Das -CApath /etc/ssl/certs/ vergessen.

Ich möchte hier auch gleich nochmal etwas Werbung für Cacert machen.
Schaut mal rein, ist echt ne tolle Sache.

cane
15.01.07, 21:20
Cacert ist nett aber an die Zertifikate kommt IMO jeder Hans, ich kenn ein dutzend Leute die mich da autorisieren können und mir was beliebiges ausstellen würden.

Oder hab ich was übersehen?

mfg
cane

fuffy
16.01.07, 15:37
Hi!


Cacert ist nett aber an die Zertifikate kommt IMO jeder Hans, ich kenn ein dutzend Leute die mich da autorisieren können und mir was beliebiges ausstellen würden.
Das Prinzip von CAcert beruht auf den gleichen Prinzipien wie OpenPGP, nämlich dem Web Of Trust. Dieses dutzend Leute bestätigt deine Identität, nicht mehr und nicht weniger. Was anderes ist hierbei auch unwichtig.

Gruß
fuffy

FortPrefect
17.01.07, 15:37
Hi,

vielleicht sehe ich den Wald vor Bäumen nicht, aber kann ich mit CACert auch ein bestehendes Certificat signieren, so das der Fingerprint bleibt aber meinem Certificat vertraut wird?
:confused: Wie bei PGP wo jemand meinen Key signieren kann?

Gruß
FortPrefect

SirSydom
19.01.07, 12:44
Cacert ist nett aber an die Zertifikate kommt IMO jeder Hans, ich kenn ein dutzend Leute die mich da autorisieren können und mir was beliebiges ausstellen würden.

Oder hab ich was übersehen?

mfg
cane

Ich denke schon das du das was übersiehst.

Ein CAcert Zertifikat bekommst du nur wenn du mehr als 50 Punkte hast.
Bei einer Assurance bekommst du zwischen 10 und 35 Punkten, je nachdem welches Level (Punkte) derjenige hat, der dich assured.
D.h. man wird mindestens von 2 Assurern geprüft ob man wirklich derjenige ist der man vorgibt zu sein (2 amtliche Ausweise mit Bild usw..).

Du kennst wirklich ein dutzend Leute die bei CAcert 100 oder mehr Punkte haben oder einen Notar und die dir alle eine falsche Identität bestätigen?

Außerdem gibts einige offiziele Cert-Aussteller die zB nur Ausweisnummer oder so übers Internet abfragen - alles andere als sicher.

@FortPrefect

Nein, es sind ganz normale X.509 (http://de.wikipedia.org/wiki/X.509) Zertifikate. Diese werden nur von EINEM Signiert, in diesem Fall CAcert.
Was CAcert aber auch macht, es hat auch einen PGP/GPG Schlüssel, es signiert dir wenn du ausreichend assured bist auch deinen GPG Key.. der CAcert GPG Key hat zur Zeit 709 Signaturen :)