OpenSSL生成自签名证书及使用

本文介绍了如何通过OpenSSL工具生成自签名证书,包括创建私钥、生成证书请求(CSR)、制作自签名证书的步骤,并提到了证书在HTTPS和nginx服务器配置中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. OpenSSL生成自签名证书

1. 安装OpenSSL:首先,确保您的系统上安装了OpenSSL。

2. 生成私钥:运行以下命令生成一个私钥文件(例如,private.key):

openssl genpkey -algorithm RSA -out private.key -pkeyopt rsa_keygen_bits:2048

此命令将使用RSA算法生成一个私钥文件。

  • private.key:生成的私钥文件
  • -pkeyopt rsa_keygen_bits:2048:指定密钥长度为2048(SSL/TLS 协议要求使用安全性较高的密钥长度以确保通信的安全性。一般来说,EE 密钥的推荐长度为2048位或更高)

3. 生成证书请求 (CSR):使用生成的私钥,运行以下命令生成一个证书请求文件(例如,csr.pem):

openssl req -new -key private.key -out csr.pem

该命令将提示您提供一些信息,例如组织名称、国家/地区、通用名称等。填写相应的信息并保存文件。
生成证书请求提示添加信息

  • Country Name (2-letter code) [XX]: 输入国家/地区代码
  • State or Province Name (full name) []: 输入州/省的全名
  • Locality Name (eg, city) [Default City]: 输入所在城市的名称
  • Organization Name (eg, company) [Default Company Ltd]: 输入组织名称
  • Organizational Unit Name (eg, section) []: 输入组织单位或部门名称
  • Common Name (eg, your name or your server’s hostname) []: 输入通用名称,即与您正在请求证书的域名相对应的主机名,例如 “example.com”
  • Email Address []: 输入电子邮件地址

以上信息,如果没有,请留空。

4. 生成自签名证书:使用生成的私钥和证书请求,运行以下命令生成自签名证书(例如,public.crt):

openssl x509 -req -in csr.pem -signkey private.key -out public.crt -days 365

这将使用私钥对证书请求进行签名,并生成一个自签名证书文件。

  • public.crt:生成的自签名证书文件
  • -days 365:证书有效时长为365天

二. 使用生成的自签名证书

1. HTTPS 经由 HTTP 进行通信,利用 SSL/TLS 来加密数据包,需要证书支持

2. 在nginx中配置证书文件

配置证书

### 如何使用 OpenSSL 生成自签名证书 #### 准备工作 确保已安装并配置好 OpenSSL 工具。可以通过命令 `openssl version` 来验证是否成功安装。 #### 创建私钥文件 为了安全起见,先创建一个用于存储密钥的目录,并进入该目录: ```bash mkdir ~/ssl && cd ~/ssl ``` 接着可以利用下面这条指令来生成 RSA 私钥(默认长度为2048位),并将它保存到名为 `server-key.pem` 的文件里[^1]: ```bash openssl genrsa -des3 -out server-key.pem 2048 ``` 此过程会提示设置加密口令保护私钥的安全性;如果希望省去这一步,则可去掉 `-des3` 参数以不带密码的方式生成私钥。 #### 构建自签发 X.509 数字证书请求(CSR) 有了上述准备好的私钥之后,就可以着手构建 CSR 文件了。这里采用交互模式填写必要信息,最终产出的结果会被写入至 `server.csr` 中: ```bash openssl req -new -key server-key.pem -out server.csr ``` 在执行过程中需依次提供国家名、省份名称等细节资料给即将颁发出来的虚拟身份证明书所用。 #### 执行自签署操作得到公有证书 最后一步就是让刚才建立起来的那个实体自己给自己发放一张有效期一年的有效凭证——即所谓的“自签名证书”。具体做法如下所示: ```bash openssl x509 -req -days 365 -in server.csr -signkey server-key.pem -out server-cert.pem ``` 此时便完成了整个流程,在当前路径下应该能看到新产生的两个重要文档:一个是之前提到过的 `.csr` 请求表单副本;另一个则是至关重要的 `.pem` 结构化编码形式呈现出来的公开认证材料。 对于某些应用场景而言,可能还需要进一步转换成其他格式比如 PFX/PEM 等以便于部署应用环境之中[^2]。例如要将现有的 PEM 类型转存为 Windows 平台常用的 PKCS#12 归档包时可以用这样的语句实现: ```bash openssl pkcs12 -export -out server.pfx -inkey server-key.pem -in server-cert.pem ``` 以上便是完整的基于 OpenSSL 实现自定义 SSL/TLS 自签名证书制作全过程介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值