Hi Mark, thans a lot for your comments. The problem is that I found a way to generate via API a PKCS12 keystore for my client, but it won't be based on my server's certificate.
I could not find a way to auto-enroll users using openssl and Java, I mean control openssl commands from Java to create PKCS12 keystores they can import, already signed by my server certificate, so that my server will trust in them without having to reload the Truststore (if I understood well you last paragraph). That's why I was looking into this problem, once I was able to create these clients certificates via API ( CertAndKeyGen.getSelfCertificate() ) and store the client certificates into my truststore, I thought the natural next step was to reload the truststore in some way, because these certificates are not linked to my server-certificate and the server must verify them. It seems I have to resort to openssl to sign them with my server's certificate, but I don't know how to do that programatically with Java. I searched the tomcat archives and found that others comfronted this problem and probably shared my misconception of the certificate system, but no one reported it as solved, either by doing it the right way via openssl or finally implementing a trustManager, or something like that using JSSE APIs (which is what I would prefer). Thanks for the links anyway, if you have some resource about controlling the process via openssl with Java, please share it with me. Regards. On 6/11/07, Mark Claassen <[EMAIL PROTECTED]> wrote:
Humm. I don't think this is how the certificate system is supposed to be used. The intention is that the truststore handles certificates authorities you trust. For an example, let's switch to the browser. Browsers generally trust Verisgn and Thwart out of the box. You can see these certificates in your browser's options pages. So, let's say you go to amazon.com. Amazon will have a certificate that was created for them by, say, Verisign. Your browser will get the amazon certificate and see that it was created by verisign. Since your browser already trusts verisign, it will trust that amazon is who it says it is. (Verifying identity is the certificate's primary function.) Tomcat works the same way. So, in your case, maybe you want to create your own certificate and put it into your truststore. Then, as you create certificates for other's, you create them based on the certificate you loaded into your truststore. Since Tomcat already trusts this one, all the certificates you create and give to others will also be trusted...no reconfiguration necessary. Mark Some helpful links: http://www.tc.umn.edu/~brams006/selfsign.html http://www.openssl.org/docs/apps/x509.html http://www.openssl.org/docs/apps/pkcs12.html -----Original Message----- From: Ronald Spiers [mailto:[EMAIL PROTECTED] Sent: Monday, June 11, 2007 10:21 AM To: users@tomcat.apache.org Subject: Reloading keystore - how to register a new TrusStore Manager for Tomcat? Hi, I am preparing a self enrollment webapp for generating client certificates and adding them to the server keystore. I know that Tomcat won't reload keystore unless the server is restarted, so I did look for alternatives, and the JSSE guide explains an approach to this in the section "Creating Your Own X509TrustManager". My question is: Does anybody in this list have some experience solving this problem?, providing tomcat a custom trust manager to dynamically add a client certificate to the verification path when client credentials are presented? Can self-enrollment be done using Tomcat and JSSE? maybe it can't be done I am just wasting my time ;) I have searched a lot in the last 3 days, tomcat list archives and other materials, I have not found a single solution to this problem, except for the JSSE guide and this article, that explains how to create a trustManager and a SSLContext for implementing S/MIME with JavaMail: * http://www.javaworld.com/javatips/jw-javatip115.html Thanks a lot for any feedback you can provide. Regards, Martin --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]