繁体   English   中英

如何创建X509自签名证书以在Apache Tomcat中使用

[英]How to create X509 self signed certificate for use in Apache Tomcat

我有一个使用第三方JVM在Windows Mobile设备上运行的Java应用程序。 该应用程序通过HTTP与Apache Tomcat服务器通信。 我们还对某些连接使用了HTTPS,并且使用Sun keytool实用程序创建了证书。 首先使用genkey创建密钥库,然后使用export导出证书,最后使用import将其导入另一个密钥库。 genkey创建的文件已加载到Apache服务器中,而使用import创建的密钥库已加载到PDA上的JVM中。 一切正常。

我现在正在PDA上使用新的JVM,并且(无论出于何种原因)我已经确定该JVM需要密钥存储区为X509(DER)格式。 我大约一个月前就开始进行这项工作,并且一直有效,但愚蠢的是从来没有写下我所采取的步骤,而现在我一辈子都记不住自己做了什么。 我似乎记得使用openssl,但除此之外,我完全迷失了。 我现在使用openssl创建的任何内容,尝试加载到Apache中都会在启动时导致错误(无效的密钥库格式),因此我可能会完全丢失某些内容。

有人对我如何创建可加载到PDA上运行的Apache服务器和JVM的自签名X509证书有什么想法吗?

UPDATE

我遵循了Apache关于创建自签名证书的说明:

openssl req -new -x509 -nodes -out server.crt -keyout server.key

但是,当我将密钥复制到Apache conf目录并启动时,出现异常:

java.io.IOException: invalid keystore format
    at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:633)
...

server.xml文件包含HTTPS的以下条目:

<Connector port="6969"
        protocol="HTTP/1.1"
            SSLEnabled="true"
                maxThreads="150"

                scheme="https"
                sslProtocol="TLS"
                secure="true"

                clientAuth="false"

                keystoreFile="./conf/server.key"
                keystorePass="password"

        ciphers="SSL_RSA_WITH_RC4_128_MD5"
    />

我猜密钥库需要是Java密钥库格式? 但是我需要设备的证书为x509格式,所以我不确定该怎么做?

如果您已经按照apache说明进行操作 ,则需要提供有关无效密钥库格式的更多详细信息。

not-yet-commons-ssl-0.3.11.jar中的KeyStoreBuilder实用程序可以在Apache / OpenSSL样式的PEM证书和Java密钥库文件之间进行转换:

http://juliusdavies.ca/commons-ssl/utilities.html#ksb

尝试运行此命令以查看命令行选项:

java -cp not-yet-commons-ssl-0.3.11.jar org.apache.commons.ssl.KeyStoreBuilder

您写道,PDA上的新JVM需要DER格式。 默认情况下,您使用的openssl命令行将创建PEM文件。 您可以使用以下openssl命令将这些server.crt和server.key PEM文件转换为DER格式:

$ openssl x509 -in server.crt -outform DER -out server.crt2
$ openssl rsa -in server.key -outform DER -out server.key2

PEM文件将被视为文本文件,而DER文件将为二进制文件。 如果确实只是PEM与DER格式的区别,那应该可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM