使用OpenSSL生成证书

本文介绍了如何使用OpenSSL生成RSA密钥、创建证书请求及自签名证书,并提供了详细的命令示例。

摘自网络

 

 

首先得安装OpenSSL软件包openssl,安装了这个软件包之后,我们可以做这些事情:

  o  Creation of RSA, DH and DSA Key Parameters # 创建密钥 key

  o  Creation of X.509 Certificates, CSRs and CRLs # 创建证书

  o  Calculation of Message Digests                #

  o  Encryption and Decryption with Ciphers # 加密、解密

  o  SSL/TLS Client and Server Tests        # SSL 服务器端/客户端测试

  o  Handling of S/MIME signed or encrypted Mail  # 处理签名或加密了的邮件

 

1、生成RSA密钥的方法

openssl genrsa -des3 -out privkey.pem 2048

这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成:

openssl genrsa -out privkey.pem 2048

建议用2048位密钥,少于此可能会不安全或很快将不安全。

 

2、生成一个证书请求

openssl req -new -key privkey.pem -out cert.csr

这个命令将会生成一个证书请求,当然,用到了前面生成的密钥privkey.pem文件

这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。

 

如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书:

openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095

这个命令将用上面生成的密钥privkey.pem生成一个数字证书cacert.pem

 

3、使用数字证书和密钥

有了privkey.pem和cacert.pem文件后就可以在自己的程序中使用了,比如做一个加密通讯的服务器

生成 SSL 证书通常包括以下几个步骤:创建私钥、生成证书请求(CSR)、使用 CA 根证书签名 CSR 来获取证书,或者直接生成自签名证书。以下是一个完整的流程,适用于 Linux 和 Windows 系统。 ### 生成私钥 首先需要生成一个私钥,这个私钥将用于创建证书请求(CSR)以及最终的证书文件。 ```bash openssl genrsa -out server.key 2048 ``` 这条命令会生成一个名为 `server.key` 的 2048 位 RSA 私钥文件 [^4]。 ### 生成证书请求 (CSR) 接下来,使用刚刚生成的私钥来创建一个证书请求文件(CSR)。在这个过程中,你需要输入一些基本信息,比如国家、省份、城市、组织名称等。 ```bash openssl req -new -key server.key -out server.csr ``` 这条命令会提示你输入一系列的信息,并生成一个名为 `server.csr` 的证书请求文件 [^4]。 ### 使用 CA 根证书签名 CSR 获取证书 如果你有一个 CA(证书颁发机构)提供的根证书和对应的私钥,你可以使用它们来签署你的 CSR 文件,从而得到一个正式的 SSL 证书。 ```bash openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key ``` 这条命令将会用 CA 的根证书 `ca.crt` 和它的私钥 `ca.key` 来签署 `server.csr`,并生成一个名为 `server.crt` 的 SSL 证书 [^4]。 ### 生成自签名证书 如果你只需要一个自签名证书(例如用于测试),可以直接使用下面的命令生成: ```bash openssl req -new -x509 -key server.key -out server.crt -days 365 ``` 这条命令将会生成一个有效期为 365 天的自签名证书 `server.crt` [^3]。 ### 在 Windows 上生成 SSL 证书 对于 Windows 用户,可以使用类似的 OpenSSL 命令来生成 SSL 证书: ```bash openssl x509 -req -in D:\cert\request.csr -signkey D:\cert\private.key -out D:\cert\certificate.crt -days 365 ``` 这条命令会在指定路径下生成一个由本地私钥签名的有效期为 365 天的 SSL 证书 [^2]。 通过这些步骤,你可以成功地使用 OpenSSL 工具生成 SSL 证书。请注意,在生产环境中,建议使用由可信 CA 颁发的证书以确保安全性。而在开发或测试阶段,自签名证书通常是足够的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值