使用密钥工具创建CSR,如何为tomcat ssl创建证书?
我的目标是使用keytool创建一个证书签名请求(CSR),然后获取该CSR并制作一个实际的证书以添加到密钥库,然后添加它,这样SSL(HTTPS//My.site.com)就可以工作了。这是为了测试目的 到目前为止,我已经完成了以下步骤:使用密钥工具创建CSR,如何为tomcat ssl创建证书?,tomcat,ssl,exception,certificate,keytool,Tomcat,Ssl,Exception,Certificate,Keytool,我的目标是使用keytool创建一个证书签名请求(CSR),然后获取该CSR并制作一个实际的证书以添加到密钥库,然后添加它,这样SSL(HTTPS//My.site.com)就可以工作了。这是为了测试目的 到目前为止,我已经完成了以下步骤: 为我的CSR生成密钥库: keytool-genkey-dname“CN=test.com,OU=test,O=test,L=TestCity,ST=Florida,C=US”-别名tomcat-keyalg RSA-keysize 2048-keystor
keytool-genkey-dname“CN=test.com,OU=test,O=test,L=TestCity,ST=Florida,C=US”-别名tomcat
这不仅仅是生成一个密钥对,它还使用此DN生成一个自签名证书,然后以此为基础生成一个带有-certreq
的CSR(听起来可能有些奇怪,但自签名证书和PKCS#10 CSR实际上非常相似:CSR或多或少是一个没有有效时间戳的自签名证书)
这是在:
-genkeypair
[……]
生成密钥对(公钥和关联的
私钥)。将公钥包装到X.509 v3自签名
证书,它存储为单个元素证书链。
此证书链和私钥存储在新的
由别名标识的密钥存储条目
[…]此命令在早期版本中命名为-genkey
向CA提交CSR时,通常会将CA颁发的证书重新导入到同一别名(私钥所在的别名)中,从而覆盖临时自签名证书
您可以使用keytool-certreq
和openssl
跳过步骤:只需使用keytool
导出证书,然后将其重新导入单独的信任库,以便在必要时与Java客户机一起使用
如果要模拟CA,
openssl x509
不是您应该使用的命令:
openssl x509-req-days 365-in request.csr-signkey server.key-out server.crt
作为缔约国:
-签名密钥文件名
此选项使输入文件使用提供的私钥进行自签名
如果输入文件是一个证书,它将颁发者名称设置为使用者名称(即使其自签名),将公钥更改为
提供的值并更改开始和结束日期。开始日期是
设置为当前时间,结束日期设置为确定的值
按-天选项。任何证书扩展都将保留,除非
提供了-clext选项
如果输入是证书请求,则使用提供的私钥使用
请求中的主题名称。
因此,本质上,公钥材料也来自这个私钥。因此,它将与您提供的CSR中的公钥不匹配。在这种情况下,CSR仅用于提供证书标识信息和属性
事实上,将CSR转换为证书可以有很多参数。虽然keytool
根据您提供的参数生成合理的默认自签名证书,但OpenSSL通常需要更多的配置。对于您正在尝试做的事情,肯定会更相关,不过我建议使用包装器以方便起见(它将跟踪您颁发的证书、序列号等等)
由于这似乎主要用于测试,可能是偶尔使用,您可能还会发现其他工具更方便地执行该步骤。我不确定以下内容是否正确,但它似乎有效。从各种网站拼凑一些步骤,执行这些命令生成一个密钥库,该密钥库通过tomcat为SSL连接工作。它可以将我的系统的每一部分进行测试
下面的过程描述了JKS密钥库的创建,该密钥库与JBoss 5.0应用服务器完美配合。Tomcat可能使用相同类型的
$ OLD_UMASK=`umask` (umask is inside backtick characters)
$ umask 077
$ openssl genrsa 2048 > private_key.pem
$ umask $OLD_MASK
$ openssl req -new -key private_key.pem -nodes
$ cat ca_cert.pem ca1_cert.pem ca_root.pem > ca_chain_cert.pem
$ cat certificate.pem ca_chain_cert.pem > chain.pem