Re: mod_ssl: Add support for OpenSSL providers

Daniel <[email protected]>
Newsgroups gmane.comp.apache.devel
Organization Apache Software Foundation
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.