On Wed, Sep 29, 2021 at 11:18:31AM -0400, Viktor Dukhovni 
<postfix-us...@dukhovni.org> wrote:

> On Thu, Sep 30, 2021 at 12:45:31AM +1000, raf wrote:
> 
> > > postconf: warning: /etc/postfix/master.cf: undefined parameter: 
> > > submission_sender_restrictions
> > > smtp       inet  n       -       n       -       -       smtpd
> > > submission inet  n       -       n       -       -       smtpd
> > >     -o syslog_name=postfix/submission
> > >     -o smtpd_recipient_restrictions=permit_tls_clientcerts,reject
> > >     -o smtpd_tls_req_ccert=yes
> > >     -o smtpd_tls_auth_only=no
> > >     -o smtpd_tls_security_level=encrypt
> > >     -o smtpd_tls_cert_file=/etc/postfix/ssl/submission.cert
> > >     -o smtpd_tls_key_file=/etc/postfix/ssl/submission.key
> > 
> > The above two parameters are overriding the corresponding parameters
> > in main.cf for incoming mail on port 587. That's probably not what you
> > are intending. Normally, you would just set these in main.cf so that
> > the same certificate is used on ports 25 and 587. But perhaps you want
> > two different certificates for the same purpose. That's not
> > necessarily a problem (but see below).
> 
> Given the of names, the choice to use separate certificates for
> submission vs. port 25 is rather apparent.
> 
> > > I'm able to create and sign certs with those CA certificates? What
> > > is it exactly that's breaking down here? Any pointers would be
> > > greatly appreciated here.
> > 
> > The main problem is that you are using two different certificates
> > for the same purpose (server), but you seem to have created one for
> > server use and the other one for client use.
> 
> Please don't just make stuff up, this helps noone.  The reported
> error logging was:
> 
>     Sep 29 07:16:02 centos8mx-dev postfix/submission/smtpd[17603]: \
>         issuer=/C=US/ST=Pennsylvania/L=Philadelphia/O=LHProjects Information \
>         Network/OU=LHProjects Certificate Authority/CN=LHP MX CA \
>         V1/emailAddress=admin...@lhpmail.us
>     Sep 29 07:16:02 centos8mx-dev postfix/submission/smtpd[17603]: \
>         unknown[192.168.103.201]: subject_CN=smtp.lhpmail.us, issuer=LHP MX 
> CA V1, \
>         
> fingerprint=87:0F:12:04:F3:A1:BD:3A:E1:38:33:3E:62:65:8E:B1:A6:4D:A5:60, \
>         
> pkey_fingerprint=00:AC:ED:99:56:33:22:A0:CA:75:9D:69:4B:C4:E5:2B:45:7C:1E:6D
>     Sep 29 07:16:02 centos8mx-dev postfix/submission/smtpd[17603]: 
> certificate \
>         verification failed for unknown[192.168.103.201]: not designated for 
> use as a CA \
>         certificate
> 
> The last of these indicates that "LHP MX CA V1" lacks the proper
> extensions to be an X.509v3 CA for issuing TLS client certificates.  The
> underlying error from OpenSSL is "X509_V_ERR_INVALID_PURPOSE".
> 
> The CA's extended key usage almost certainly specifies only "serverAuth"
> and not also "clientAuth", so it is rejected as a client cert issuer.
> 
> > Passing the "openssl verify -purpose sslclient ..."
> > test is only appropriate for the smtp_tls_cert_file
> > parameter (i.e. used by the local postfix smtp client for
> > outgoing mail), which you aren't using anywhere. The
> > certificate in smtpd_tls_cert_file is being used by the
> > local postfix smtp server for incoming mail.
> 
> The client certificates in question are those of various
> MUAs, not the Postfix server in question.
> 
> > Was your intention to use submission.cert as a client
> > certificate when making outgoing connections to the
> > relay_transport (smtp:smtp.lhpmail.us:587)?
> 
> No, it was clearly to support client cert authenticated submission.
> Best to not muddy the waters.
> 
> -- 
>     Viktor.

Sorry for my confusion, and thanks for clearing it up.

I hadn't even noticed that there was a third
certificate (smtpd_tls_CAfile=ca_new2.pem) being used
as a CA certificate. Maybe the fingerprint checking
blinded me to that.

You said that the following extensions are needed:

  basicConstraints = CA:true
  keyUsage = digitalSignature, keyCertSign, cRLSign
  extendedKeyUsage = serverAuth, clientAuth

Is it the case that serverAuth is only required for CA
certificates used with smtp_tls_CAfile (or
lmtp_tls_CAfile), and that clientAuth is only required
for CA certificates used with smtpd_tls_CAfile?

cheers,
raf

Reply via email to