Peter Lindgren: > Hi! > > I build postfix 3.5.7 from source on OpenBSD 6.7. I seem to have problem > with the certificate I generated. They work fine with Dovecot, though. > > In the moment postfix/master starts the smtpd and it's trying to do > something with the certificate (on the smtp submission port 587), it > crashes: > > Sep 20 23:03:50 neptunus postfix/master[30686]: warning: process > /usr/local/libexec/postfix/smtpd pid 84403 killed by signal 9
This reminds me of GnuTLS library code that would send text to stderr and terminate the process. That was a very unusual way to report that the random number generator was unavailable. Calling a library with a bad certificate should never cause a process to terminate. Instead the library should return an error code to Postfix. Perhaps some OpenBSD code is sending a signal 9 (SIGKILL) when it does not like what Postfix does? It would be a very unusual way to report a problem. Try this: postfix stop /path/to/master -d This will leave stderr open and display any stderr output that some non-Postfix library code might send. Wietse > Sep 20 23:03:50 neptunus postfix/master[30686]: warning: > /usr/local/libexec/postfix/smtpd: bad command startup -- throttling > > I added a lot of debugging/logging code to find where it crashes, and > for a moment I thought I had found it, line 522 in tls/tls_server.c. So > I added -DOPENSSL_NO_TLSEXT and built again, but now it crashes further > down, the call tls_set_my_certificate_key_info() on line 606 in > tls/tls_server.c, function tls_server_init(). > > However, I take a step back and I assume there is something wrong with > the certificate or my configuration? It's a self-signed certificate. Or > am I on to some real bug here? > > Here's my postconf -n output: > > neptunus# postconf -n | sort > command_directory = /usr/local/sbin > compatibility_level = 2 > daemon_directory = /usr/local/libexec/postfix > data_directory = /var/postfix > debug_peer_level = 2 > debug_peer_list = localhost > disable_vrfy_command = yes > home_mailbox = Maildir/ > html_directory = /usr/local/share/doc/postfix/html > inet_protocols = all > mail_owner = _postfix > mail_spool_directory = /var/mail > mailbox_command = /usr/local/libexec/dovecot/deliver > mailbox_size_limit = 80000000 > mailq_path = /usr/local/sbin/mailq > manpage_directory = /usr/local/man > message_size_limit = 80000000 > meta_directory = /etc/postfix > mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain > mynetworks_style = subnet > newaliases_path = /usr/local/sbin/newaliases > queue_directory = /var/spool/postfix > readme_directory = /usr/local/share/doc/postfix/readme > recipient_delimiter = + > relay_domains = $mydestination > relayhost = [in.mailjet.com]:587 > sample_directory = /etc/postfix > sendmail_path = /usr/local/sbin/sendmail > setgid_group = _postdrop > shlib_directory = /usr/lib/postfix > smtp_sasl_auth_enable = yes > smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd > smtp_sasl_security_options = noanonymous > smtp_tls_security_level = encrypt > smtp_tls_wrappermode = no > smtpd_banner = $myhostname ESMTP $mail_name ($mail_version $service_name) > smtpd_recipient_restrictions = permit_auth_destination, > permit_sasl_authenticated, reject > tls_random_source = dev:/dev/urandom > unknown_local_recipient_reject_code = 550 > > And the relevant part of master.cf: > > submission inet? n?????? -?????? y?????? -?????? -?????? smtpd -v > ? -o smtpd_sasl_auth_enable=yes > ? -o smtpd_sasl_type=dovecot > ? -o smtpd_sasl_path=private/auth > ? -o smtpd_sasl_security_options=noanonymous > ? -o smtpd_sasl_tls_security_options=noanonymous > ? -o smtpd_sasl_local_domain=$mydomain > ? -o > smtpd_tls_chain_files=/etc/ssl/private/dovecot-priv-key.pem,/etc/ssl/dovecot-pub-cert.pem > #? -o smtpd_tls_auth_only=yes > ? -o smtpd_use_tls=yes > ? -o smtpd_tls_loglevel=2 > #kraschar:? -o smtpd_enforce_tls=yes > #kraschar:? -o smtpd_tls_security_level=encrypt > ? -o smtpd_client_restrictions=permit_sasl_authenticated,reject > ? -o > smtpd_sender_restrictions=reject_non_fqdn_sender,reject_unknown_sender_domain,reject_sender_login_mismatch > #? -o smtpd_sender_login_maps=unix:passwd.byname > ? -o > smtpd_recipient_restrictions=reject_non_fqdn_recipient,permit_sasl_authenticated,permit_auth_destination,reject > ? -o smtpd_relay_restrictions=permit_sasl_authenticated,reject > > Here's my 'make makefiles' command: > > make makefiles shared=yes CCARGS='-DUSE_SASL_AUTH -DUSE_TLS > -DDEF_SERVER_SASL_TYPE=\"dovecot\" -DOPENSSL_NO_TLSEXT > -I/usr/local/include/sasl' AUXLIBS="-lssl -lcrypto -L/usr/local/lib -lsasl2" > > Thanks, > Peter > > -- > Peter Lindgren<pe...@norrskenkonsult.com> >