如何使用OpenSSL生成自签名X.509证书?

嗨,x509证书被许多应用程序广泛使用。生成x509证书似乎很难,但事实并非如此。我们将生成一个名为t1.key的密钥,然后从该密钥创建一个签名请求。之后,为了签署我们的请求,我们将生成一个自签名的CA密钥和证书。之后,我们将发出请求并生成可供使用的证书。

null

图片[1]-如何使用OpenSSL生成自签名X.509证书?-yiteyi-C++库 创建2048位RSA密钥

首先,我们需要一把必须保密的钥匙。但出于示例目的,我将以Base64格式显示所有键。这里我们将生成大小为2048位的RSA密钥,并将其命名为t1.key。然后我们查看密钥文件的类型,然后将密钥数据放入终端。我们将使用 -out 选项指定密钥文件名。

$ openssl genrsa -out t1.key 2048
Create 2048 Bit RSA Key 
创建2048位RSA密钥

创建证书签名请求

这只是密钥,但是我们应该向CA生成一个证书Sing请求CSR,在本例中我们就是CA。我们使用t1.key作为输入,t1.csr作为输出。我们还设置了一个对称密钥来保护我们的证书签名请求。要使用预定义的参数,如国家名称等,请使用-c OpenSSL.cnf提供OpenSSL配置文件

$ openssl req -new -in t1.key -out t1.csr
Create Certificate Sign Request
创建证书签名请求

自签名CSR

现在CA得到我们的CSR,它将用他的私钥签署我们的CSR。但在本例中,我们是CA,需要首先创建一个自签名密钥。我们创建一个名为key.pem的CA私钥和名为cert.pem的证书,用于对用户签名的证书进行身份验证。有效时间范围是365天。型号为x509

$ openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

现在签署有效期为365天的CSR并创建t1.crt。在打开名为key.pem的CA私钥时,我们需要输入密码。

$ openssl x509 -req -days 365 -in t1.csr -signkey key.pem -out t1.crt
Self Sign CSR
自签名CSR

打印X.509证书信息和详细信息

我们可以使用 -noout -text 选项如下。

$ openssl x509 -in t1.crt -noout -text
Print X.509 Certificate Information and Details
打印X.509证书信息和详细信息

我们可以从截图中看到以下信息。

  • `证书版本`
  • `序列号`
  • `发行人`
  • `有效期`
  • `主题`
  • `主题公钥信息`
  • `公钥算法`
  • `公钥`
  • `模数`
  • `指数`
  • `签名算法`

相关文章: 使用Hashlib模块将Python哈希字符串和列表转换为MD5、SHA256、SHA512

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享