Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Corretto documentation to include the root CAs that are trusted by the Amazon Corretto JDK #181

Open
mvhowardAWS opened this issue Mar 25, 2024 · 8 comments

Comments

@mvhowardAWS
Copy link

Describe a solution you would like

I would like to make a feature request for some sort of documentation containing the root CAs that are trusted by the Amazon Corretto JDK, similar to how Mozilla maintains some documentation here: https://wiki.mozilla.org/CA/Included_CAs and here: https://wiki.mozilla.org/CA

Describe alternatives you have considered

The Amazon Trust Repositroy only contains a few of the trusted CAs.

keytool -list -cacerts command with Corretto 17 returns a list containing 100+ entries of trusted CAs. Those entries include those listed in the Amazon Trust Repository, but they also include all of the other trusted CAs.

Additional context

Customers are transitioning to Corretto JDK and need to be able to easily link auditors and end-customers to documentation, that's kept up to date, on which root CA certificates are trusted.

@mcookAmazon
Copy link

Hi mvhwardAWS,

Thank you for using Corretto! I'd like to better understand the need and see if and how we might be able to help.

We have a list of the CAs we ship with in the code here.

Would the above be sufficient for your needs? If not, would you please share your use case?

All the best,
Mike

@mcookAmazon
Copy link

mcookAmazon commented Mar 26, 2024

Adding more details -

All of the certificates we bundle with Corretto that come from upstream OpenJDK have [jdk] in the cert name.

All of the certificates that we add from Amazon do not have [jdk] in the name.

So, for any given release you can run the keytool command and you will get back the included certs for that release.

keytool -list -cacerts|cut -d, -f1 |grep -v fingerprint|grep jdk will return all of those certificates originating from upstream OpenJDK. keytool -list -cacerts|cut -d, -f1 |grep -v fingerprint|grep -v jdk will return all certificates Amazon has added.

We pull the certs from a couple of locations, and the file directory structure has changed between releases. For reference, the Corretto 21 release takes what is in https://github.com/corretto/corretto-21/tree/cef27c0d26d54a92045f3cb7d3985e4bd0da6ee1/src/java.base/share/data/cacerts and then adds in https://github.com/corretto/corretto-21/blob/develop/amazon-cacerts

We think the best way to list out the certs is by using the keytools command (or other equivalent tool) to look for certs with [jdk] in them.

@ChrisGenesys
Copy link

@mcookAmazon Our primary goal is to have a webpage that we can refer our customers to so that they can verify whether their preferred CA will be trusted. These are end users of the systems we're building, so they may not have the expertise or knowhow to run keytool commands themselves. Could Amazon publish a "trusted CA" page that lists the trusted root CAs and their serial numbers so that those customers could quickly search for their CA?

@mcookAmazon
Copy link

@ChrisGenesys - I will review with the team and provide an update.

@Lirons01
Copy link

Lirons01 commented May 16, 2024

@mcookAmazon Has there been any update on this?

@mcookAmazon
Copy link

We have reviewed this internally.

We think providing instructions on how to print out the certs is the best way forward.

First cd into the bin directory where your Corretto distribution has been installed.

cd $JAVA_HOME/bin

Next run the keytool command:

keytool -list -keystore ../lib/security/cacerts -storepass changeit

This will provide a list of the cacerts provided with the distribution.

We believe that this procedure will ensure that the customer is seeing an accurate list of what cacerts were included for the specific release they have installed.

@ChrisGenesys
Copy link

@mcookAmazon This request is not for us. Rather, it's for our customers who are only tangentially aware that they are using a AWS based Java application.

In our case, we are hosting an application in AWS that will be connecting to customer supplied APIs.

Our customers want to check whether or not the certificate authority they use will be trusted by our application when it attempts to connect. Our customers are not running our application locally and will not have access to the Corretto distribution or keytool.

We could, of course, run keytool ourselves and publish a list. However, it would be more sustainable for AWS to have an officially generated and updated list in the same way that Mozilla does with https://ccadb.my.salesforce-sites.com/mozilla/CAInformationReport. We would supply that list to our customers so that they could understand certificate compatibility.

@mcookAmazon
Copy link

Hi @ChrisGenesys - Can you please further describe the usage scenario? I'd like to learn more about the specifics where the customer does not know which Java distribution is being used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants