security - 使用 keytool 生成 key 和证书

标签 security certificate ssl-certificate x509certificate keytool

我想生成一个自签名的可信证书和一个 csr,并使用创建的可信证书对 csr 进行签名。我正在尝试使用 keytool。在使用以下命令创建受信任证书的第一步中

keytool -genkey -alias mytrustCA -keyalg RSA -keystore keystore.jks -keysize 1024

它将证书放入 keystore 的位置。如何将其存储到文件中?当我使用列出内容时

keytool -list -v -keystore cert/test.keystore

使用上述“genkey”命令创建的证书的条目类型为“PrivateKeyEntry”,如何创建受信任的证书条目?

最佳答案

在您的第一个命令中,您使用了 -genkey生成名为 keystore.jks 的 keystore 的选项.

导出.CER中的证书格式文件,您将需要使用 -export keytool 的选项。

一个例子是:

keytool -v -export -file mytrustCA.cer -keystore keystore.jks -alias mytrustCA

这将生成一个名为 mytrustCA.cer 的文件

要生成发送给 CA 以获取签名证书的证书请求,您需要使用 -certreq key 工具选项。

一个例子是:
keytool -v -certreq -keystore keystore.jks -alias mytrustCA

这将要求提供 keystore 密码,并且在成功验证后,它将显示如下所示的证书请求(示例)。
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIBtDCCAR0CAQAwdDELMAkGA1UEBhMCSU4xFDASBgNVBAgTC01haGFyYXNodHJhMQ8wDQYDVQQH
EwZNdW1iYWkxEjAQBgNVBAoTCU1pbmRzdG9ybTEUMBIGA1UECxMLRW5naW5lZXJpbmcxFDASBgNV
BAMTC1JvbWluIElyYW5pMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqOLEumwLHlzIUAPD6
Ab1pVp84mhSNCCcUKInZbSdiDYnKSr46EjEw0PtZOVPJbM4ZG3bZsOboYr0YfViJi41o4yJICFAZ
8wCQQxPK/4N8MPV7C5WDH28kRKGH/Pc2e7CxV+as573I34QmkINk7fEyERMDwP/WgmrcKZgL0sfy
ewIDAQABoAAwDQYJKoZIhvcNAQEFBQADgYEAlcpjOUZFP9ixskXSA7HNlioWwjbL9f9rQskJ9rK8
kGLJ1td+mqqm20yo/JrKCzZjOMqr/aL6Zw2dkoyU34T9HnR2Bs3SgKn6wlYsYEVvVBk71Ec6PeTi
e+fhfNQEHsj4wuB4qixO3s1jtsLDy+DpTzYguszczwxXGFVNuk+y2VY=
-----END NEW CERTIFICATE REQUEST-----

您需要发送此证书请求或将其粘贴到数字证书签名者网页中。或者,您甚至可以将此输出重定向到文件而不是控制台,如下所示:
keytool -v -certreq -keystore keystore.jks -alias mytrustCA > mycertreq.txt

关于security - 使用 keytool 生成 key 和证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11308077/

相关文章:

ssl - 在 cloudflare 中禁用 SSL 并在服务器端使用(Ubuntu 和 Nginx)

security - 使用 Backbone.js、Require.js 和 Laravel 的 SPA 安全性

clickonce - 如何让域 Controller 给我一个 ClickOnce 证书

c# - 获取用于 Visual Studio 签名的可信证书

java - 使用 Java 忽略 SSL 证书错误

node.js - NodeJS http 和 https 模块有什么区别?

c# - 我应该如何解决我在 C# 中的方法访问安全性?

c++ - 如何在您的应用程序中安全地处理密码

windows - 如何制作安全的在线编译器?

Java:使用现有的 pfx 证书签署 PDF