OS & JVM keystores

Sean Mullan sean.mullan at oracle.com
Wed Oct 1 19:01:14 UTC 2025


Hi,

There is already a feature in the JDK that is close to what you are 
looking for. There is a KeyStore type called "DKS" (called the 
DomainKeyStore). See 
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/DomainLoadStoreParameter.html 
for more info on how to configure it.

Basically, it uses a config file to present a collection of keystores as 
one logical keystore.

Currently there is no way to specify the configuration file as a system 
property, so you would have to write a custom TrustManagerFactory.

I would try seeing if this solution is workable and we can think about 
whether adding a system property for the config file is something that 
would be useful.

--Sean

On 10/1/25 9:14 AM, Baesken, Matthias wrote:
>
> Hi , we were recently asked if it is possible to have in Java 
> something like a "union" of the Java certs and the system keystore.
>
> Currently it seems only be possible to use one of them, e.g. a) use 
> the Java cacerts or  b) switch fully to the system keystore (on 
> Windows, there seems to be -Djavax.net.ssl.trustStoreType=Windows-ROOT )
>
> For a more detailed discussion see
>
> https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/pull/929 
> <https://urldefense.com/v3/__https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/pull/929__;!!ACWV5N9M2RV99hQ!MZG04zXcn4IlpyOa_UDJl2-Fzb8aajztWecVbGgy74qgYbxtucZFIoV_fZpyk__sk3QIXQc7xqj3ZlRNAaE8Tm_Iz8I$>
>
> *"What we would need is a union of both keystores, which is currently 
> not possible (neither is accessing the 'System Roots' nor is telling 
> the JVM to use a union of multiple stores)."*
>
> and also
>
> https://github.com/eclipse-packaging/packages/pull/224 
> <https://urldefense.com/v3/__https://github.com/eclipse-packaging/packages/pull/224__;!!ACWV5N9M2RV99hQ!MZG04zXcn4IlpyOa_UDJl2-Fzb8aajztWecVbGgy74qgYbxtucZFIoV_fZpyk__sk3QIXQc7xqj3ZlRNAaE8j4QB9Iw$>
>
> Sean Coffey also pointed out that there is the option of implementing 
>  an own 'TrustManagerFactory' implementation via addition of a 
> provider  (currently, only the JSSE provider provides such 
> functionality by default. e.g. entry point to loading trusted certs 
> would be via this code: 
> https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java#L48 
> <https://urldefense.com/v3/__https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java*L48__;Iw!!ACWV5N9M2RV99hQ!Pdqi9KrO5AO_y6ZznwdSXbEoDEQHWDkIys-OOLQmQl134sT8OK4RyzRqIXu3e8oEQF3tnVeGP1Tnju0HOYp5hiQwZos$> 
> ).
>
>  So is there some plan to have such a "union" / merging directly in 
>  the JDK  ?
>
> Or any hints how to handle this ?
>
> (seems there are some people building a "union" / merged trustStore 
> with scripts but this looks a bit like a hack to me and will not work 
> for all users)
>
> Best regards, Matthias
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/security-dev/attachments/20251001/b05fc2ea/attachment-0001.htm>


More information about the security-dev mailing list