"badly formated directory string" when trying to generate certificate signing request

I followed the instructions in this document, but I cannot create a certificate signing request (CSR). When I go to ssl-certificates.jsp and update the issuer information at ssl-signing-request.jsp, a CSR is not generated. I noticed this error in stderr.log right after I tried to update the information:

java.lang.IllegalArgumentException: badly formated directory string

The complete error is shown below.

I’m getting this error in Openfire 3.3.3 and 3.3.1 on two different servers.

Thanks in advance.

–df

Here is the complete error:

java.lang.IllegalArgumentException: badly formated directory string

at org.bouncycastle.asn1.x509.X509Name.(Unknown Source)

at org.jivesoftware.util.CertificateManager.createX509V3Certificate(CertificateMan ager.java:760)

at org.jivesoftware.util.CertificateManager.createRSACert(CertificateManager.java: 121)

at org.jivesoftware.openfire.admin.ssl_002dsigning_002drequest_jsp._jspService(ssl _002dsigning_002drequest_jsp.java:121)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1074)

at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:11 8)

at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1065)

at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:65)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1065)

at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingF ilter.java:41)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1065)

at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:69)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1065)

at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:98)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1065)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)

at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollect ion.java:146)

at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)

at org.mortbay.jetty.Server.handle(Server.java:285)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)

at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:765 )

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:627)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:203)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)

at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:217)

at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

I found a workaround, but would still like to see my question answered. I manually went to import-certificate.jsp and pasted in my private key and certificate. It would nonetheless be nice for Openfire to handle all of this for me, rather than having to run all the OpenSSL commands on the command line. At the very least, there should be an link in the web interface to import-certificate.jsp for someone who encounters this problem, or just wants to put in their certificates manually.

–df