E2k7 Zertifikate (CSR mit openSSL signieren)

06/08/2008 - 11:30 von Jan Asmus | Report spam
Hallo,

ich bin mittlerweile am verzweifeln - bin mir auch im klaren darüber, dass
das kein ausschliessliches Exchange Thema ist.

Ich betreibe einen UNIX Host (Debian 4.0 64Bit) und openSSL. Auf diesem habe
ich eine RootCA und eine ServerCA etabliert.
Das scheint so auch ganz gut zu funktionieren.

Daneben betreibe ich auf einem W2k8-Server ein Exchange2007 Server.

Mit New-ExchangeCertificate erzeuge ich jetzt ein Zertifikatsrequest (CSR)
und stelle diesen der openSSL Server CA zum signieren bereit.
openSSL kann aber das CSR-File offensichtlich nicht richtig deuten und
findet in diesem keinen x509 request

Ich vermute jetzt irgendwie, dass die Art und Weise mit der
New-ExchangeCertificate das CSR verschlüsselt von openSSL nicht erkannt
werden kann.. ich evtl das CSR erst konvertieren muss oder bereits bei der
Erstellung openSSL-konform erstellen muss.. irgendetwas in dieser Art.
Weiterhin könnte ich mir einen V2/V3-Konflikt vorstellen.

Jedoch bin ich hierbei zu leicht um das beurteilen zu können.

Als detailliertere Inormation hier ein paar Infos

meine openSSL.conf:


HOME = /usr/lib/ssl

##################################################
[ ca]
default_ca = ServerCA

[ RootCA]
dir = /usr/lib/ssl/RootCA
certs = $dir/certs
crl_dir = $dir/crl
database = $dir/index.txt
new_certs_dir = $dir/newcerts

certificate = $dir/cacert.pem
serial = $dir/serial
crl = $dir/crl.pem
private_key = $dir/private/RootCA.key.pem
RANDFILE = $dir/private/.rand
unique_subject = no
email_in_dn = yes
policy = policy_match
x509_extensions = ca_cert
default_days = 3650
default_crl_days0
default_md = md5

[ ServerCA]
dir = /usr/lib/ssl/ServerCA
certs = $dir/certs
crl_dir = $dir/crl
database = $dir/index.txt
new_certs_dir = $dir/newcerts

certificate = $dir/ServerCA.cert.pem
serial = $dir/serial
crl = $dir/crl.pem
private_key = $dir/private/ServerCA.key.pem
RANDFILE = $dir/private/.rand
unique_subject = no
email_in_dn = yes
policy = policy_match
x509_extensions = ca_cert
default_days = 3650
default_crl_days0
default_md = md5

[ policy_match]
countryName = match
stateOrProvinceName = optional
organizationName = match
organizationalUnitName = supplied
commonName = supplied
emailAddress = optional

[ req_distinguished_name ]
countryName = Land (2stelliger Code)
countryName_default = DE
countryName_min = 2
countryName_max = 2

stateOrProvinceName = Bundesland
stateOrProvinceName = Bavaria

localityName = Stadt

0.organizationName = Firma
0.organizationName_default = Asmus Group

organizationalUnitName = Abteilung
organizationalUnitName_default = HQ

commonName = Common Name
commonName_max = 64

emailAddress = EMail Adresse
emailAddress_max = 64

[ user_cert]
basicConstraints = critical,CA:false
subjectKeyIdentifier = hash
subjectAltName = URI: [your.site.com]

[ ca_cert]
basicConstraintsÊ:true
nsComment = "OpenSSL Generated Certificate"
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:allways


[ req ]
default_bits = 1024
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
#attributes = req_attributes
#x509_extensions = v3_ca # The extentions to add to the self signed cert



Hier der Befehl, mit dem ich das CSR erzeugt habe auf der Windows Maschine :


[PS] C:\Windows\System32>New-ExchangeCertificate -domainname
web.meinedomain.tld
-IncludeAutoDiscover -Generaterequest:$true -keysize 1024 -path
d:\inetpub\ftpro
ot\meinedomain.csr -privatekeyexportable:$true -subjectname "cÞ o=Mein
Name, CN=we
b.meinedomain.tld"


Hier der Befehl, mit dem ich auf Bass des CSR ein Zertifikat erstellen
lassen will / signieren will

# openssl ca -name ServerCA -in meinedomain.csr -out meinedomain.pem
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for /usr/lib/ssl/ServerCA/private/ServerCA.key.pem:
Error reading certificate request in meinedomain.csr
5150:error:0906D06C:PEM routines:PEM_read_bio:no start
line:pem_lib.c:644:Expecting: CERTIFICATE REQUEST
web01:/usr/lib/ssl/ServerCA#



Hier der Befehl und die Ausgabe, wenn ich das CSR überprüfen möchte

# openssl req -text -verify -in meinedoamin.csr
unable to load X509 request
5141:error:0906D06C:PEM routines:PEM_read_bio:no start
line:pem_lib.c:644:Expecting: CERTIFICATE REQUEST



für hilfreiche Tipps !sehr! dankbar

Jan
 

Lesen sie die antworten

#1 Jan Asmus
06/08/2008 - 15:39 | Warnen spam
ich habe es jetzt so gelöst, dass ich csr und key für Exchange auf dem
Unix-Systems mit openSSL erstelle, das csr signe und das daraus
resultierende crt mit dem key zusammen en ein p12 packe und das dann einfach
dem Windows Server zum import übergebe..

klappt so, aber die das ursprüngliche problem verstehe ich trotzdem nicht

Gruß, Jan


"Jan Asmus" schrieb im Newsbeitrag
news:
Hallo,

ich bin mittlerweile am verzweifeln - bin mir auch im klaren darüber, dass
das kein ausschliessliches Exchange Thema ist.

Ich betreibe einen UNIX Host (Debian 4.0 64Bit) und openSSL. Auf diesem
habe ich eine RootCA und eine ServerCA etabliert.
Das scheint so auch ganz gut zu funktionieren.

Daneben betreibe ich auf einem W2k8-Server ein Exchange2007 Server.

Mit New-ExchangeCertificate erzeuge ich jetzt ein Zertifikatsrequest (CSR)
und stelle diesen der openSSL Server CA zum signieren bereit.
openSSL kann aber das CSR-File offensichtlich nicht richtig deuten und
findet in diesem keinen x509 request

Ich vermute jetzt irgendwie, dass die Art und Weise mit der
New-ExchangeCertificate das CSR verschlüsselt von openSSL nicht erkannt
werden kann.. ich evtl das CSR erst konvertieren muss oder bereits bei der
Erstellung openSSL-konform erstellen muss.. irgendetwas in dieser Art.
Weiterhin könnte ich mir einen V2/V3-Konflikt vorstellen.

Jedoch bin ich hierbei zu leicht um das beurteilen zu können.

Als detailliertere Inormation hier ein paar Infos

meine openSSL.conf:


HOME = /usr/lib/ssl

##################################################
[ ca]
default_ca = ServerCA

[ RootCA]
dir = /usr/lib/ssl/RootCA
certs = $dir/certs
crl_dir = $dir/crl
database = $dir/index.txt
new_certs_dir = $dir/newcerts

certificate = $dir/cacert.pem
serial = $dir/serial
crl = $dir/crl.pem
private_key = $dir/private/RootCA.key.pem
RANDFILE = $dir/private/.rand
unique_subject = no
email_in_dn = yes
policy = policy_match
x509_extensions = ca_cert
default_days = 3650
default_crl_days0
default_md = md5

[ ServerCA]
dir = /usr/lib/ssl/ServerCA
certs = $dir/certs
crl_dir = $dir/crl
database = $dir/index.txt
new_certs_dir = $dir/newcerts

certificate = $dir/ServerCA.cert.pem
serial = $dir/serial
crl = $dir/crl.pem
private_key = $dir/private/ServerCA.key.pem
RANDFILE = $dir/private/.rand
unique_subject = no
email_in_dn = yes
policy = policy_match
x509_extensions = ca_cert
default_days = 3650
default_crl_days0
default_md = md5

[ policy_match]
countryName = match
stateOrProvinceName = optional
organizationName = match
organizationalUnitName = supplied
commonName = supplied
emailAddress = optional

[ req_distinguished_name ]
countryName = Land (2stelliger Code)
countryName_default = DE
countryName_min = 2
countryName_max = 2

stateOrProvinceName = Bundesland
stateOrProvinceName = Bavaria

localityName = Stadt

0.organizationName = Firma
0.organizationName_default = Asmus Group

organizationalUnitName = Abteilung
organizationalUnitName_default = HQ

commonName = Common Name
commonName_max = 64

emailAddress = EMail Adresse
emailAddress_max = 64

[ user_cert]
basicConstraints = critical,CA:false
subjectKeyIdentifier = hash
subjectAltName = URI: [your.site.com]

[ ca_cert]
basicConstraintsÊ:true
nsComment = "OpenSSL Generated Certificate"
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:allways


[ req ]
default_bits = 1024
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
#attributes = req_attributes
#x509_extensions = v3_ca # The extentions to add to the self signed cert



Hier der Befehl, mit dem ich das CSR erzeugt habe auf der Windows Maschine
:


[PS] C:\Windows\System32>New-ExchangeCertificate -domainname
web.meinedomain.tld
-IncludeAutoDiscover -Generaterequest:$true -keysize 1024 -path
d:\inetpub\ftpro
ot\meinedomain.csr -privatekeyexportable:$true -subjectname "cÞ o=Mein
Name, CN=we
b.meinedomain.tld"


Hier der Befehl, mit dem ich auf Bass des CSR ein Zertifikat erstellen
lassen will / signieren will

# openssl ca -name ServerCA -in meinedomain.csr -out meinedomain.pem
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for /usr/lib/ssl/ServerCA/private/ServerCA.key.pem:
Error reading certificate request in meinedomain.csr
5150:error:0906D06C:PEM routines:PEM_read_bio:no start
line:pem_lib.c:644:Expecting: CERTIFICATE REQUEST
web01:/usr/lib/ssl/ServerCA#



Hier der Befehl und die Ausgabe, wenn ich das CSR überprüfen möchte

# openssl req -text -verify -in meinedoamin.csr
unable to load X509 request
5141:error:0906D06C:PEM routines:PEM_read_bio:no start
line:pem_lib.c:644:Expecting: CERTIFICATE REQUEST



für hilfreiche Tipps !sehr! dankbar

Jan








Ähnliche fragen