生成证书、密钥对以及PKCS#1与PKCS#8密钥的转换操作

1. 生成私钥

首先,生成一对 RSA 私钥。你可以指定密钥长度,常用的长度为 2048 或 4096。

openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048

-algorithm RSA:指定使用 RSA 算法生成私钥。

-out private_key.pem:输出到文件 private_key.pem

-pkeyopt rsa_keygen_bits:2048:生成 2048 位的密钥

2. 创建证书签名请求 (CSR)

接下来,使用生成的私钥创建证书签名请求 (CSR)。你需要提供证书的信息,例如国家 (Country)、省份 (State)、组织名 (Organization)、以及通用名 (Common Name, CN)。

openssl req -new -key private_key.pem -out cert_request.csr

在执行这条命令时,OpenSSL 会提示输入一系列信息:

  • Country Name (2 letter code):国家代码,如 US
  • State or Province Name (full name):省份或州,如 California
  • Locality Name (eg, city):城市,如 San Francisco
  • Organization Name (eg, company):组织名,如 My Company Ltd
  • Organizational Unit Name (eg, section):部门名,如 IT
  • Common Name (e.g. server FQDN or YOUR name):主机名(或域名),如 www.example.com

此过程会生成一个 cert_request.csr 文件,这是证书的请求文件。

3. 生成自签名证书

如果你不打算使用第三方证书颁发机构 (CA) 来签发证书,而是创建一个自签名证书,可以使用以下命令:

openssl x509 -req -days 365 -in cert_request.csr -signkey private_key.pem -out certificate.pem

-req:表示使用 CSR 生成证书。

-days 365:证书的有效期为 365 天(你可以根据需求调整)。

-signkey private_key.pem:使用生成的私钥签署证书。

-out certificate.pem:输出证书到 certificate.pem

—–BEGIN PRIVATE KEY—– 开头的文件和 —–BEGIN RSA PRIVATE KEY—–开头的文件有什么不同

这两种开头的文件都是私钥文件,但是它们所使用的加密算法不同。
—–BEGIN PRIVATE KEY—– 开头的文件通常包含的是 PKCS#8 格式的私钥,而 PKCS#8 是一种通用的私钥格式,可以支持不同种类的加密算法,如 RSA、DSA、ECDSA 等。因此,这种格式的私钥文件可能不仅限于 RSA 加密算法。

—–BEGIN RSA PRIVATE KEY—– 开头的文件则只包含 RSA 加密算法所使用的私钥信息,并采用了 PKCS#1 格式。这种格式的私钥文件仅适用于 RSA 加密算法。

PKCS#1 to PKCS#8

openssl pkcs8 -topk8 -inform pem -in logstash.key -outform pem -nocrypt -out logstash-pkcs8.key
或者
openssl pkcs8 -topk8 -inform pem -in logstash.key -outform pem -out logstash-pkcs8-enc.key

-nocrypt:表示不加密输出的私钥。

生成结果:输出的 logstash-pkcs8.key 文件是未加密的 PKCS#8 格式私钥,任何人获得该文件即可直接使用私钥。

适用场景:一般用于受信任的环境,比如文件将被安全地存储或传输的情况下使用。

不指定 -nocrypt,默认会加密:此命令会生成加密的 PKCS#8 格式私钥文件,输出的 logstash-pkcs8-enc.key 文件会使用用户交互过程中提供的密码对私钥进行加密。

生成结果:私钥将被加密,需要密码才能使用该私钥,保护私钥的安全性。

适用场景:适合在不完全信任的环境中使用,确保即使私钥文件被泄露,其他人也无法使用该私钥,除非他们知道加密密码。

PKCS#8 to PKCS#1

openssl rsa -in logstash-pkcs8.key --out logstash-pkcs1.key
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.obsession.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值