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)中,该列表会通知客户端该证书不再有效。