OpenSSL是一个强大、功能齐全的开源工具包,它实现了SSL和TLS协议,同时也是一个通用的加密库。它被广泛用于在各种系统中管理SSL/TLS证书、私钥和证书签名请求(CSR)。本文将探讨如何使用OpenSSL处理SSL证书、私钥和CSR,并通过示例帮助理解每一个步骤。
Intro
- SSL证书:用于使用SSL/TLS协议在服务器和客户端之间建立安全连接的数字证书。它们包含有关证书持有者、证书颁发者和公钥的信息。
- 私钥:在SSL/TLS握手过程中用于保护连接的加密密钥。必须对其严格保密并确保安全。
- 证书签名请求(CSR):证书签名请求是发送给证书颁发机构(CA)的一条消息,用于为服务器请求数字证书。
安装OpenSSL
对于大多数Linux发行版,OpenSSL是预装的。如果未预装,可以使用包管理器进行安装。例如:
- Ubuntu/Debian:
sudo apt-get install openssl - CentOS/Fedora:
sudo yum install openssl
对于Windows系统,可以从官方网站下载最新版本: https://www.openssl.org/
一些命令
# 生成私钥:此命令生成一个2048位的RSA私钥,并将其保存在private_key.pem文件中。
$ openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
# 创建CSR:系统将提示输入有关组织和服务器的信息,例如国家/地区、州/省、城市、组织名称、通用名称(域名)和电子邮件地址。完成提示后,证书签名请求(CSR)将保存到csr.pem文件中。
$ openssl req -new -key private_key.pem -out csr.pem
# 自签名SSL证书:使用提供的证书签名请求(CSR)和私钥创建一个有效期为365天的自签名SSL证书。
$ openssl x509 -req -in csr.pem -signkey private_key.pem -out self_signed_certificate.pem -days 365
# 查看SSL证书详细内容
$ openssl x509 -in certificate.pem -text -noout
# 检查私钥
$ openssl rsa -in private_key.pem -text -noout
# 查看CSR文件
openssl req -in csr.pem -text -noout
# 转换证书格式
## PEM=>DER
$ openssl x509 -in certificate.pem -outform der -out certificate.der
## DER=>PEM
$ openssl x509 -inform der -in certificate.der -out certificate.pem
更新和撤销SSL证书
要更新SSL证书,需要创建一个新的CSR并将其提交给证书颁发机构(CA),生成新的私钥(如有需要)和新的CSR,将新的CSR发送给CA,他们将为您提供更新后的SSL证书。
要撤销SSL证书,请联系CA并向他们提供必要的详细信息,例如证书序列号或证书副本。然后,CA会将该证书添加到其证书撤销列表(CRL)中,该列表会通知客户端该证书不再有效。
















