TLS公钥私钥制作(ubuntu)

78 阅读3分钟

一、前提准备:安装 OpenSSL 工具

首先确保系统已安装 OpenSSL,若未安装执行以下命令:
sudo apt-get install openssl
安装完成后,输入 openssl 命令进入交互模式,即可开始后续操作。

二、公钥私钥制作步骤

1. 生成 RSA 私钥(2048 位)
genrsa -out rsa_private_key.pem 2048
说明:生成名为 rsa_private_key.pem 的私钥文件,密钥长度 2048 位(安全性更高,兼容大部分场景)。
2. 转换私钥为 PKCS8 格式(无加密)
pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
说明:PKCS8 格式是 Java 等语言常用的私钥格式,-nocrypt 表示不加密私钥(若需加密可移除该参数,生成时需设置密码)。
3. 从私钥提取公钥
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
输出:生成名为 rsa_public_key.pem 的公钥文件,可用于数据加密或签名验证。

三、自定义证书制作(含 PKCS12 格式转换)

1. 生成证书私钥
openssl genrsa -out ryans-key.pem 2048
2. 生成证书签名请求(CSR)
openssl req -new -sha256 -key ryans-key.pem -out ryans-csr.pem
执行后需按提示输入以下参数(示例值):
参数项输入内容说明
国家 / 地区代码CN中国缩写
州 / 省份GD广东省缩写
城市SZ深圳市缩写
组织名称TEST企业 / 组织英文名
部门名称Server所属部门
Common NameIoT证书绑定的域名 / 标识
邮箱地址test@163.com联系邮箱
密码短语test123可选(证书使用时需验证)
公司名称Test组织全称
3. 自签名生成证书(CRT 格式)
openssl x509 -req -in ryans-csr.pem -signkey ryans-key.pem -out ryans-cert.pem
说明:自签名证书适用于测试、内部系统,无需第三方 CA 机构认证。
4. 转换为 PKCS12 格式(PFX/P12)
两种格式均可(后缀不同,用途一致,适用于 Windows/iOS 等系统):
# 生成 PFX 格式

openssl pkcs12 -export -in ryans-cert.pem -inkey ryans-key.pem -certfile ryans-cert.pem -out ryans.pfx

# 或生成 P12 格式

openssl pkcs12 -export -in ryans-cert.pem -inkey ryans-key.pem -certfile ryans-cert.pem -out ryans.p12
说明:PKCS12 格式包含证书和私钥,便于应用直接导入使用。

四、HTTPS 网站证书制作(有效期 10 年)

1. 生成网站私钥
openssl genrsa -out server.key 2048
2. 生成网站 CSR 文件
openssl req -new -key server.key -out server.csr
输入参数与「三、2」一致(示例值):
CN(国家)→ GD(省份)→ SZ(城市)→ TEST(组织)→ Server(部门)→ IoT(域名)→ test@163.com(邮箱)→ test123(密码)→ Test(公司名)
3. 生成 10 年有效期的 HTTPS 证书
openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650
关键参数:-days 3650 表示证书有效期为 10 年(365 天 / 年 ×10),可根据需求调整天数。

五、注意事项

  1. 密钥文件(.pem、.key)需妥善保管,避免泄露(私钥泄露可能导致数据安全风险)。
  2. 自签名证书在浏览器中会提示「不安全」,仅用于测试;生产环境需购买第三方 CA 机构认证的证书(如 Let's Encrypt 免费证书)。
  3. 若需修改证书参数,可重新生成 CSR 文件并签名,无需重新生成私钥。