38

我们正在尝试从我们的一个合作伙伴那里实现 Web 服务的某些功能。现在,正在传输的内容应该用我们必须提供的公钥加密。

安全规范说公共证书必须是 X.509 标准。X.509 不依赖于私钥/公钥方法吗?因为我只得到一个 .pem 文件,其中包含一个私钥和一个证书,但没有公钥,使用以下命令:

openssl req -new -x509 -days 365 -nodes -out ./cert.pem -keyout ./cert.pem

我是否必须修改命令才能创建私钥和公钥?

4

3 回答 3

109

使用 OpenSSL 生成私钥和公钥的基本命令行步骤如下

openssl genrsa -out private.key 1024
openssl req -new -x509 -key private.key -out publickey.cer -days 365
openssl pkcs12 -export -out public_privatekey.pfx -inkey private.key -in publickey.cer

第 1 步 – 生成私钥

第 2 步 – 创建一个 X509 证书(.cer 文件),其中包含您在注册私有应用程序(或升级到合作伙伴应用程序)时上传的公钥。

第 3 步 – 将您的 x509 证书和私钥导出到 pfx 文件。如果您选择的包装库使用 .pem 文件对请求进行签名,则不需要此步骤。

希望有帮助!这个答案解释了不同的文件扩展名。

于 2013-05-10T11:51:41.017 回答
14

公钥存储在 x.509 证书中。证书将身份信息(通用名称、地址等)绑定到此公钥。

于 2013-05-10T11:14:33.027 回答
7

创建一个私钥-公钥对。

openssl req -x509 -newkey rsa:2048 -keyout private.key -out public.cert -days 365

或者,将这对组合成一个文件。

openssl pkcs12 -export -inkey private.key -in public.cert -out certificate.pfx

这会产生以下文件。

private.key
certificate.pfx
public.cert

也可以看看

于 2016-09-07T02:27:25.623 回答