On 8/4/26 21:57, Graham Leggett via dev wrote:
On 04 Aug 2026, at 17:57, Joe Orton <[email protected]> wrote:

I like the STORE stuff - it's a nice API. Getting rid of SSL*File will
mean breaking every single existing mod_ssl configuration (outside of
mod_md). I don't see any motivation for that - "there is a new OpenSSL
API so you all have to change your configs" is not an argument I want to
have with users at any point. So even talking about deprecation of the
existing directives seems futile to me.

I'm talking over a decade plus. I am hoping that the new store will convince people to drop their old configs just through less pain, and the older directives go into mod_ssl_compat.

It looks like end goal here is to allow users to slurp everything or
anything out of a STORE URI ... CRLs, CA, leaf certs... great - so why
not have just a single new directive (one for each of proxy/server I
assume) to pass in a URI and do exactly that? That can happily live
alongside SSL*File/Path and we could argue about deprecating those in
2.6 separately/later.

Minimising directives, which in turn minimises the ways things go wrong, is the primary goal.

The two main directives are for certs, intermediates and keys, in any order, server, proxy. Point at the entire Windows cert store, and it will identify all leaf certs that match ServerName+ServerAlias that have private keys, sort oldest to newest, grab the chains, give them to openssl. End result is most recently issued cert for RSA, ECDSA, etc wins.

https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcertificateuri
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslproxymachinecertificateuri

The above directives replace all of these:

https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcertificatechainfile
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcertificatefile
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcertificatekeyfile
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslproxymachinecertificatechainfile
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslproxymachinecertificatefile
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslproxymachinecertificatepath

CA certs are done by these. The group of trusted certs, server, proxy, with the group of trusted certs to be advertised if different.

https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcacertificateuri
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcadnrequesturi
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslproxycacertificateuri

They replace all of these:

https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcacertificatefile
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcacertificatepath
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcadnrequestfile
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcadnrequestpath
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslproxycacertificatefile
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslproxycacertificatepath

CRLs are done here, but to be honest they could be folded into sslcacertificateuri <https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcacertificateuri> above and have trusted certs and CRLs covered by the same directive.

https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcarevocationuri
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslproxycarevocationuri

They replace these:

https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcarevocationfile
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcarevocationpath
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslproxycarevocationfile
https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslproxycarevocationpath

Regards,
Graham
--

Hello,

I am no dev, but I would like to give my feedback as admin of dozens or 
hundreds of instances in enterprise situation.

If I am interpreting this correctly if it gets applied it would apply to 2.4.69 
or 2.4.70 or similar, removing or deprecating current directives from mod_ssl 
and spawning a new mod_ssl_compat module for compatibility the way is being 
implemented now.

Since an upgrade change could be caused by wanting to fix a CVE or similar, not 
just changes in mod_ssl, if the update involves changed behaviour in a module, 
the changes involved will be much more.

Wouldn't it be less painful for users/admins to spawn a new module (example: 
mod_ssl_new or whatever) with the new functionality instead of turning most 
existing functionality to a deprecating named module mod_ssl_compat?

On one hand, if new functionality is changed in mod_ssl, changing the module 
functionality that will force at least one configuration change in all your 
instances, being it the name of the module (to change to compat version) or the 
name of the directives loading the certificate.
So if the user/admin has dozens/hundreds of servers, you will have to change 
that many instances upon upgrade. Affecting the user/admin right away.

On the other hand, if the current module name stays the same, upon upgrade you will not 
have to change anything until you decide you are ready for the new module functionality. 
Thus upgrading won't affect anyone until they decide to use the new 
"mod_ssl_new" functionality, load the new module and change their directives, 
or do it where they can when they can.
This way, users/admins wont be affected and those that are ready can migrate to 
new functionality right away when they want.


Thanks for reading, for you work and patience.


--
-Daniel
Find help at #httpd in Libera.chat

Reply via email to