• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

/usr/sbin/mkpostfixcert: line 233: 18712 Segmentation fault

Status
Für weitere Antworten geschlossen.

komaii

Member
habt ihr ne idee was das sein könnte??

ich habe auf der suse9.1 postfix installiert, dann in der /etc/sysconfig/postfix TLS aktiviert, anschliesend ein "SuSEconfig -module postfix" gemacht --> hier der log.
Starting SuSEconfig, the SuSE Configuration Tool...
Running module postfix only
Reading /etc/sysconfig and updating the system...
Executing /sbin/conf.d/SuSEconfig.postfix...
creating CA request/certificate...
creating certificate request...
signing server certificate...
Setting up postfix local as MDA...
Setting SPAM protection to "off"...
Installing new /etc/postfix/main.cf
Finished.
-----------
nun möchte ich zertifikate ausstellen, dazu habe ich folgenden befehl verwendet:
"mkpostfixcert -n komaii -c meinrechner.local.domain"

und hier die fehlermeldung die ich bekomme:
/usr/sbin/mkpostfixcert: line 233: 18712 Segmentation fault $openssl ca -config $TMPFILE -notext -batch -out $ccert -infiles $creq

hier der auszug was da in diesem file steht:
229 echo "signing server certificate..."
230 $openssl ca -config $TMPFILE -notext -batch -out $ccert -infiles $creq || {
231 echo "error signing server certificate"
232 myexit
233 }
234 rm -rf $TMPFILE
235
236 echo "converting to DER format..."

irgendwelche idee was das sein könnte??

lg,
komaii
 

JINX

Newbie
Hi,

folgendes:

229 echo "signing server certificate..."
230 $openssl ca -config $TMPFILE -notext -batch -out $ccert -infiles $creq || {
231 echo "error signing server certificate"
232 myexit
233 }
234 rm -rf $TMPFILE
235
236 echo "converting to DER format..."

In Zeile 230 würde ich die eine Pipe "|" wegmachen und die Klammer ist unnötig. Genauso wie die Klammer in Zeile 233.
Entferne mal die zwei Klammern und probier es dann nochmal. Wenn es dann auch noch nicht geht, dann mach mal eine der zwei Pipes weg und probier es nochmal.

Bei Problemem einfach melden.
 

oc2pus

Ultimate Guru
JINX schrieb:
Hi,

folgendes:

229 echo "signing server certificate..."
230 $openssl ca -config $TMPFILE -notext -batch -out $ccert -infiles $creq || {
231 echo "error signing server certificate"
232 myexit
233 }
234 rm -rf $TMPFILE
235
236 echo "converting to DER format..."

In Zeile 230 würde ich die eine Pipe "|" wegmachen und die Klammer ist unnötig. Genauso wie die Klammer in Zeile 233.
Entferne mal die zwei Klammern und probier es dann nochmal. Wenn es dann auch noch nicht geht, dann mach mal eine der zwei Pipes weg und probier es nochmal.

Bei Problemem einfach melden.

ACHTUNG:
Das ist keine Pipe sondern ein logisches ODER
Die Klammern bleiben auch da wo sie sind ;)
 
OP
K

komaii

Member
danke für den tipp,
jetzt hab ich mal ein pipe weggemacht, dann kommt folgende fehlermeldung:

---------------------
worker:/etc/postfix/ssl # mkpostfixcert -n teschtcert -c local.domain
creating certificate request...
Generating a 1024 bit RSA private key
....++++++
............................++++++
writing new private key to '/etc/postfix/ssl/certs/teschtcertkey.pem'
-----
signing server certificate...
Using configuration from /tmp/mkpostfixcert.Ec4657
error signing server certificate
DEBUG[load_index]: unique_subject = "yes"
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :pRINTABLE:'AT'
stateOrProvinceName :pRINTABLE:'Ti'
localityName :pRINTABLE:'Ibk'
organizationName :pRINTABLE:'Mail Dev'
organizationalUnitName:pRINTABLE:'Mail Service'
commonName :pRINTABLE:'local.domain'
emailAddress :IA5STRING:'postmaster'
converting to DER format...
Error opening Certificate /etc/postfix/ssl/certs/teschtcertcert.pem
4672:error:02001002:system library:fopen:No such file or directory:bss_file.c:276:fopen('/etc/postfix/ssl/certs/teschtcertcert.pem','r')
4672:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:278:
unable to load certificate
error converting to DER
Error opening Certificate /etc/postfix/ssl/certs/teschtcertcert.pem
4674:error:02001002:system library:fopen:No such file or directory:bss_file.c:276:fopen('/etc/postfix/ssl/certs/teschtcertcert.pem','r')
4674:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:278:
unable to load certificate

You may now want to add the fingerprint to /etc/postfix/relay_ccerts:

teschtcert

Don't forget to run SuSEconfig -module postfix after you've done that!
-----------------------------------------

stell ich alles wieder zurück dann kommt die fehlermeldung:
worker:/etc/postfix/ssl # mkpostfixcert -n teschtcert -c local.domain
creating certificate request...
Generating a 1024 bit RSA private key
....++++++
.....................++++++
writing new private key to '/etc/postfix/ssl/certs/teschtcertkey.pem'
-----
signing server certificate...
Using configuration from /tmp/mkpostfixcert.Ro6201
DEBUG[load_index]: unique_subject = "yes"
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :pRINTABLE:'AT'
stateOrProvinceName :pRINTABLE:'Ti'
localityName :pRINTABLE:'Ibk'
organizationName :pRINTABLE:'Mail Dev'
organizationalUnitName:pRINTABLE:'Mail Service'
commonName :pRINTABLE:'local.domain'
emailAddress :IA5STRING:'postmaster'
/usr/sbin/mkpostfixcert: line 233: 6206 Segmentation fault $openssl ca -config $TMPFILE -notext -batch -out $ccert -infiles $creq
error signing server certificate
--------------------------

habt ihr noch eine idee?
 

oc2pus

Ultimate Guru
danke für den tipp,
jetzt hab ich mal ein pipe weggemacht, dann kommt folgende fehlermeldung:

kannst du nicht lesen ?

DAS IST KEINE PIPE !!!

wenn der erste Befehl vor dem || nicht geht wird der BLOCK nach dem || { }
ausgeführt. Zugegeben nicht sehr pfiffig programmiert, aber so ist es nun mal. Ich kann nur davon abraten in scruipten rumzufingern OHNE Programmierkenntnisse ;)

Hast du openssl überhaupt installiert ? und Konfiguriert ?
 
OP
K

komaii

Member
oke das hab ich jetzt verstanden, ja meine Programmierkenntnisse sind gleich null :eek:)

ja openssl ist installiert und funktioniert auch wunderbar.
ich kann ja mittels smtpds schon mails versenden. (kommt nur die nervige meldung das dieses zertifikat nicht von einer vertrauenswürdigen bla bla stammt, eh klar ist ja die eigene ca).
ich hätte halt gerne user zertifikate ausgestellt und das würde ja mit dem Befehl "mkpostfixcert" gehn.....

hier nochmals die schritte die ich gemacht habe, vllt seht ihr ja den fehler auf anhieb und ich hab was übersehen:

- mit Yast die folgenden Pakete installiert: postfix, openssl, cyrus-sasl, amavis, qpopper..

- dann in der "/etc/sysconfig/postfix" TLS Server auf yes gestellt

- anschliessend habe ich "SuSEconfig -module postfix" ausgeführt, hier wird dann automatisch das verzeichnis "etc/postfix/ssl" erstellt mit dem cacert.pem und im unterverzcihnis certs/ sind dann die folgenden zertifikate:
-rw------- 1 root root 1184 Aug 11 10:58 postfixcert.pem
-rw------- 1 root root 887 Aug 11 10:58 postfixkey.pem
-rw------- 1 root root 761 Aug 11 10:58 postfixreq.pem

- SuSEconfig schreibt auch in der Console:
SuSEconfig -module postfix
Starting SuSEconfig, the SuSE Configuration Tool...
Running module postfix only
Reading /etc/sysconfig and updating the system...
Executing /sbin/conf.d/SuSEconfig.postfix...
creating CA request/certificate...
creating certificate request...
signing server certificate...
Setting up postfix local as MDA...
Setting SPAM protection to "off"...
Finished.

- und dann wollte ich so wie in der "/usr/share/doc/packages/postfix/README.SuSE" steht die Client Zertifikate erstellen.

hab ich bis hierher was falsch gemacht? nicht oder...
 

oc2pus

Ultimate Guru
füge im Script /usr/sbin/mkpostfixcert nach der Zeiile
#!/bin/bash
die folgende Zeile ein:
set -x

dann starte deinen Aufruf nochmal. Jetzt siehst du alle Befehle welche abgearbeitet werden und welche Werte die Variablen haben.
 
OP
K

komaii

Member
ahhh, so hier der output:

------------------------------------>
+ . /etc/sysconfig/postfix
++ POSTFIX_RELAYHOST=
++ POSTFIX_MASQUERADE_DOMAIN=
++ POSTFIX_LOCALDOMAINS=
++ POSTFIX_NULLCLIENT=no
++ POSTFIX_DIALUP=no
++ POSTFIX_NODNS=no
++ POSTFIX_CHROOT=no
++ POSTFIX_UPDATE_CHROOT_JAIL=no
++ POSTFIX_LAPTOP=no
++ POSTFIX_UPDATE_MAPS=yes
++ POSTFIX_RBL_HOSTS=
++ POSTFIX_BASIC_SPAM_PREVENTION=off
++ POSTFIX_MDA=local
++ POSTFIX_SMTP_AUTH_SERVER=no
++ POSTFIX_SMTP_AUTH=no
++ POSTFIX_SMTP_AUTH_OPTIONS=
++ POSTFIX_SMTP_TLS_SERVER=yes
++ POSTFIX_SMTP_TLS_CLIENT=yes
++ POSTFIX_SSL_PATH=/etc/postfix/ssl
++ POSTFIX_TLS_CAFILE=cacert.pem
++ POSTFIX_TLS_CERTFILE=certs/postfixcert.pem
++ POSTFIX_TLS_KEYFILE=certs/postfixkey.pem
++ POSTFIX_SSL_COUNTRY=AT
++ POSTFIX_SSL_STATE=Ti
++ POSTFIX_SSL_LOCALITY=Ibk
++ POSTFIX_SSL_ORGANIZATION=Mail Dev
++ POSTFIX_SSL_ORGANIZATIONAL_UNIT=Mail Service
++ POSTFIX_SSL_COMMON_NAME=worker.livliq.local
++ POSTFIX_SSL_EMAIL_ADDRESS=postmaster
++ POSTFIX_ADD_MAILBOX_SIZE_LIMIT=0
++ POSTFIX_ADD_MESSAGE_SIZE_LIMIT=10240000
+ test -z -n
++ getopt -o t:s:l:eek::u:c:e:n:p --long country:,state:,locality:,organization:,organizational-unit:,common-name:,email-address:,name:,pkcs12 -- -n teschtcert -c worker.livliq.local
+ TEMP= -n 'teschtcert' -c 'worker.livliq.local' --
+ '[' 0 '!=' 0 ']'
+ eval set -- ' -n '\''teschtcert'\'' -c '\''worker.livliq.local'\'' --'
++ set -- -n teschtcert -c worker.livliq.local --
+ POSTFIX_SSL_COMMON_NAME=
+ true
+ name=teschtcert
+ shift 2
+ true
+ POSTFIX_SSL_COMMON_NAME=worker.livliq.local
+ shift 2
+ true
+ shift
+ break
+ test -z teschtcert -o -z worker.livliq.local
+ openssl=/usr/bin/openssl
+ sslpath=/etc/postfix/ssl
+ ckey=/etc/postfix/ssl/certs/teschtcertkey.pem
+ creq=/etc/postfix/ssl/certs/teschtcertreq.pem
+ ccert=/etc/postfix/ssl/certs/teschtcertcert.pem
+ ccertder=/etc/postfix/ssl/certs/teschtcertcert.der
+ ccertpkcs12=/etc/postfix/ssl/certs/teschtcert.p12
+ test -f /etc/postfix/ssl/cacert.pem
++ date
+ date=Wed Aug 11 12:16:41 CEST 2004
++ mktemp /tmp/mkpostfixcert.XXXXXX
+ TMPFILE=/tmp/mkpostfixcert.h13736
+ umask 077
+ cat
+ echo 'creating certificate request...'
creating certificate request...
+ /usr/bin/openssl req -config /tmp/mkpostfixcert.h13736 -new -nodes -keyout /etc/postfix/ssl/certs/teschtcertkey.pem -out /etc/postfix/ssl/certs/teschtcertreq.pem
Generating a 1024 bit RSA private key
......++++++
.....++++++
writing new private key to '/etc/postfix/ssl/certs/teschtcertkey.pem'
-----
+ echo 'signing server certificate...'
signing server certificate...
+ /usr/bin/openssl ca -config /tmp/mkpostfixcert.h13736 -notext -batch -out /etc/postfix/ssl/certs/teschtcertcert.pem -infiles /etc/postfix/ssl/certs/teschtcertreq.pem
Using configuration from /tmp/mkpostfixcert.h13736
DEBUG[load_index]: unique_subject = "yes"
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :pRINTABLE:'AT'
stateOrProvinceName :pRINTABLE:'Ti'
localityName :pRINTABLE:'Ibk'
organizationName :pRINTABLE:'Mail Dev'
organizationalUnitName:pRINTABLE:'Mail Service'
commonName :pRINTABLE:'worker.livliq.local'
emailAddress :IA5STRING:'postmaster'
/usr/sbin/mkpostfixcert: line 234: 13739 Segmentation fault $openssl ca -config $TMPFILE -notext -batch -out $ccert -infiles $creq
+ echo 'error signing server certificate'
error signing server certificate
+ myexit
+ rm -f /tmp/mkpostfixcert.h13736 /etc/postfix/ssl/certs/teschtcertkey.pem /etc/postfix/ssl/certs/teschtcertreq.pem /etc/postfix/ssl/certs/teschtcertcert.pem
+ exit 1
worker:/etc/postfix #
------------------------------------<

einfach zum verzweifeln...
 

oc2pus

Ultimate Guru
wieso verzweifeln? wir untersuchen doch erst, es ist ja noch nix geändert worden ;)

==>
/usr/bin/openssl ca -config /tmp/xyz -notext -batch -out /etc/postfix/ssl/certs/teschtcertcert.pem -infiles /etc/postfix/ssl/certs/teschtcertreq.pem
das ist der Befehl der zum segfault führt.

a) ls -al /etc/postfix/ssl/certs/*
evtl sind die Zugriffsrechte falsch? gibt es dieses Dateien ?

b) diesen Befehl in einer Konsole eingeben
evtl kommen dann mehr Fehlermeldungen. Zusätzlich in einer Konsole (als root) folgenden Befehl eingeben
tail -f /var/log/messages
und beobachten wenn du Openssl aufrufst.

Unter welchem user rufst du das auf ?
 
OP
K

komaii

Member
fein weiter gehts:
ich mach das ganze als root.

zu a)
worker:/etc/postfix/ssl # ls -al /etc/postfix/ssl/certs/*
-rw------- 1 root root 1184 Aug 11 11:20 /etc/postfix/ssl/certs/postfixcert.pem
-rw------- 1 root root 891 Aug 11 11:20 /etc/postfix/ssl/certs/postfixkey.pem
-rw------- 1 root root 761 Aug 11 11:20 /etc/postfix/ssl/certs/postfixreq.pem
diese werden von der SuSEconfig angelegt.


die teschtcert* gibts nicht, die erstellt ja das script nicht. das möchte ich ja machen mittels "mkpostfixcert -n teschtcert -c worker.livliq.local"

eigenartigerweise sehe ich nie eine änderung im /tmp verzeichnis, eigentlich müsste dort doch ne leiche liegen wie z.B. mkpostfixcert.r20618
weil das schreibt das script ja hin das es das verwendet. ist mir aufgefallen da ich den befehl von zeile 234 gelöscht habe wo steht rm -rf $TMPFILE.

ein tail -f /var/log/messages bringt gar nichts zu tage, null anzeige..
 

oc2pus

Ultimate Guru
diese Antwort fehlt:
wenn du den Befehl so in einer Konsole eingibst, kommt dann auch segfault ?

welche openssl Version?
rpm -q openssl
 
OP
K

komaii

Member
ähm jetzt aber nicht schimpfen, welchen befehl?

den da?? der kann ja nicht gehn da es kein -config /tmp/xyz file gibt:
usr/bin/openssl ca -config /tmp/xyz -notext -batch -out /etc/postfix/ssl/certs/teschtcertcert.pem -infiles /etc/postfix/ssl/certs/teschtcertreq.pem

rpm -q openssl: openssl-0.9.7d-15.13, openssl-devel-0.9.7d-15

pin openssl ergibt:
Name : openssl Relocations: (not relocatable)
Version : 0.9.7d Vendor: SuSE Linux AG, Nuernberg, Germany
Release : 15.13 Build Date: Wed Aug 4 17:44:38 2004
Install date: Fri Aug 6 13:18:31 2004 Build Host: gambey.suse.de
Group : Productivity/Networking/Security Source RPM: openssl-0.9.7d-15.13.src.rpm
Size : 2331601 License: BSD, Other License(s), see package
Signature : DSA/SHA1, Thu Aug 5 06:00:02 2004, Key ID a84edae89c800aca
Packager : http://www.suse.de/feedback
URL : http://www.openssl.org/
Summary : Secure Sockets and Transport Layer Security
 

oc2pus

Ultimate Guru
den da?? der kann ja nicht gehn da es kein -config /tmp/xyz file gibt:
usr/bin/openssl ca -config /tmp/xyz -notext -batch -out /etc/postfix/ssl/certs/teschtcertcert.pem -infiles /etc/postfix/ssl/certs/teschtcertreq.pem
stimmt ;)

die müssen wir erst erstellen ... habe ich vergessen, sorry
in dem script /usr/sbin/mkpostfixcert fügst du nach dem EOF
den Befehl
cp $TMPFILE /tmp/xyz ein
damit sichern wir diese Datei für den manuellen Durchgang ;)

also hier meine ich
EOF

echo "creating certificate request..."
$openssl req -config $TMPFILE -new -nodes -keyout $ckey -out $creq || {
echo "error creating certificate request"
myexit
}
 
OP
K

komaii

Member
also mal vorweg möchte ich zwischendurch einfach danke sagen für die tolle hilfe, hätte ehrlich nicht gedacht das sich jemand soviel mühe macht mir zu helfen :)

here we go:
hab das so gemacht wie du geschrieben hast:
das file wird jetzt angelegt: hier der inhalt falls das zur sache beiträgt:
----------------------------------------------------->
worker:/tmp # less xyz
[ ca ]
default_ca = CA_default

[ CA_default ]

dir = /etc/postfix/ssl
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/cakey.pem
RANDFILE = $dir/private/.rand

x509_extensions = usr_cert

default_days = 2000
default_md = md5
policy = policy_anything

[ policy_anything ]

countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional

[ req ]
default_bits = 1024
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
x509_extensions = v3_ca
prompt = no

[ req_distinguished_name ]
countryName = AT
stateOrProvinceName = Ti
L = Ibk
O = Mail Dev
OU = Mail Service
commonName = worker.livliq.local
emailAddress = postmaster

[ req_attributes ]
challengePassword = 2814611110 challenge password

[ server_cert ]

basicConstraints=CA:FALSE
nsCertType = server
nsComment = generated by mkpostfixcert at Wed Aug 11 16:25:58 CEST 2004
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:always
subjectAltName=email:copy
issuerAltName=issuer:copy


[ client_cert ]

basicConstraints=CA:FALSE
nsCertType = client, email
nsComment = generated by mkpostfixcert at Wed Aug 11 16:25:58 CEST 2004
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:always
subjectAltName=email:copy
issuerAltName=issuer:copy

[ v3_ca ]

subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints = CA:true
keyUsage = cRLSign, keyCertSign
nsCertType = sslCA, emailCA
subjectAltName=email:copy
issuerAltName=issuer:copy

[ usr_cert ]

basicConstraints=CA:FALSE
nsComment = generated by mkpostfixcert at Wed Aug 11 16:25:58 CEST 2004
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:always

worker:/tmp #
-------------------------------------------------------------<

hier die fehlermeldung auf der console:
/usr/bin/openssl ca -config /tmp/xyz -notext -batch -out /etc/postfix/ssl/certs/komaiicert.pem -infiles /etc/postfix/ssl/certs/komaiireq.pem
Using configuration from /tmp/xyz
DEBUG[load_index]: unique_subject = "yes"
/etc/postfix/ssl/certs/komaiireq.pem: No such file or directory
3359:error:02001002:system library:fopen:No such file or directory:bss_file.c:276:fopen('/etc/postfix/ssl/certs/komaiireq.pem','r')
3359:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:278:

ich habs mit -n "komaii" gemacht damit ich den besseren überblick habe, sonst heisst das irgendann teschtcertcertcertcertcert... ;)

was jetzt dazu gekommen ist nach ausführen des befehles (leider erscheint nix in der syslog):
worker:/etc/postfix/ssl/certs # ls -la *
-rw-r--r-- 1 root root 0 Aug 11 16:26 komaiicert.pem
-rw------- 1 root root 1184 Aug 11 11:20 postfixcert.pem
-rw------- 1 root root 891 Aug 11 11:20 postfixkey.pem
-rw------- 1 root root 761 Aug 11 11:20 postfixreq.pem

er legt als ein leeres komaiicert.pem ab.
 

oc2pus

Ultimate Guru
der versucht diese Datei zu lesen: /etc/postfix/ssl/certs/komaiireq.pem

/etc/postfix/ssl/certs/komaiireq.pem: No such file or directory
3359:error:02001002:system library:fopen:No such file or directory:bss_file.c:276:fopen('/etc/postfix/ssl/certs/komaiireq.pem','r')
3359:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:278:

die gibt es aber nicht ...

also stimmt dein -infiles Parameter nicht
 
OP
K

komaii

Member
versteh ich jetzt nicht.

das komaiireq.pem kann er ja nicht lesen wenn er das nicht erstellt hatt.

er nimmt ja jetzt das config file her das im /tmp liegt, also das xyz, das wir da rausspeicherten..

also fehlt das *req file, dann wird das nicht erstellt oder?
 

dermichel

Advanced Hacker
in den thread arbeite ich mich jetzt nicht ein, denn hier stehts echt fuer den DAU drin:

http://postfix.state-of-mind.de/patrick.koetter/smtpauth/postfix_tls_support.html
 
Status
Für weitere Antworten geschlossen.
Oben