该命令基于现有的证书(domain.crt)和私钥(domain.key)创建一个新的 CSR(domain.csr):
openssl x509 -in domain.crt -signkey domain.key -x509toreq -out domain.csr选项 -x509toreq 指定你使用一个 X509 证书来制作 CSR 。
生成 SSL 证书如果你想使用 SSL 证书来确保服务的安全,但你不需要 CA 签名的证书,一个有效的(和免费的)解决方案是签署你自己的证书 。
你可以自己签发的一种常见证书是 自签证书(self-signed certificate) 。自签证书是用自己的私钥签署的证书 。自签证书和 CA 签名证书一样可以用来加密数据,但是你的用户会显示一个警告,说这个证书不被他们的计算机或浏览器信任 。因此,只有当你不需要向用户证明你的服务身份时,才可以使用自签名证书(例如非生产或非公开服务器) 。
本节介绍与生成自签名证书相关的 OpenSSL 命令 。
生成自签证书
【OpenSSL 精粹:SSL 证书、私钥和 CSR】如果你想使用 HTTPS(HTTP over TLS)来保护你的 Apache HTTP 或 Nginx Web 服务器,并且你不需要你的证书由 CA 签名,那么就使用这个方法 。
这个命令可以从头开始创建一个 2048 位的私钥(domain.key)和一个自签证书(domain.crt):
openssl req -newkey rsa:2048 -nodes -keyout domain.key -x509 -days 365 -out domain.crt回答 CSR 信息提问,完成该过程 。
选项 -x509 告诉 req 子命令创建一个自签名的证书 。-days 365 选项指定证书的有效期为 365 天 。它会生成一个临时的 CSR,以收集与证书相关的信息 。
从现有私钥生成自签名证书
如果你已经有了一个私钥,并且你想用它来生成一个自签证书,请使用这个方法 。
这条命令可以从现有的私钥(domain.key)中创建一个自签证书(domain.crt):
openssl req -key domain.key -new -x509 -days 365 -out domain.crt回答 CSR 信息提问,完成该过程 。
选项 -x509 告诉 req 子命令创建一个自签证书 。-days 365 选项指定证书的有效期为 365 天 。选项 -new 启用 CSR 信息提问 。
从现有的私钥和 CSR 生成自签证书
如果你已经有了私钥和 CSR,并且你想用它们生成一个自签证书,请使用这个方法 。
这条命令将从现有的私钥(domain.key)和(domain.csr)中创建一个自签证书(domain.crt) 。
openssl x509 -signkey domain.key -in domain.csr -req -days 365 -out domain.crt选项 -days 365 指定证书的有效期为 365 天 。
查看证书证书和 CSR 文件是以 PEM 格式编码的,不适合被人读取 。
本节介绍的 OpenSSL 命令将输出 PEM 编码文件的实际条目 。
查看 CSR 条目
该命令允许你查看和验证纯文本的 CSR(domain.csr)的内容:
openssl req -text -noout -verify -in domain.csr查看证书条目
该命令允许你查看纯文本证书(domain.crt)的内容:
openssl x509 -text -noout -in domain.crt验证证书由 CA 签署
使用此命令验证证书(domain.crt)是否由特定的 CA 证书(ca.crt)签署:
openssl verify -verbose -CAFile ca.crt domain.crt私钥本节介绍了用于创建和验证私钥的 OpenSSL 命令 。
创建私钥
使用该命令创建一个受密码保护的 2048 位私钥(domain.key):
openssl genrsa -des3 -out domain.key 2048在提示时输入密码以完成该过程 。
验证私钥
使用此命令检查私钥(domain.key)是否为有效密钥:
openssl rsa -check -in domain.key如果你的私钥已经加密,系统会提示你输入它的密码,成功后,未加密的密钥会在终端上输出 。
验证私钥是否与证书和 CSR 匹配
使用这些命令来验证私钥(domain.key)是否匹配证书(domain.crt)和 CSR(domain.csr):
openssl rsa -noout -modulus -in domain.key | openssl md5openssl x509 -noout -modulus -in domain.crt | openssl md5openssl req -noout -modulus -in domain.csr | openssl md5
推荐阅读
- nginx开启ssl并把http重定向到https的两种方式
- 阿里云:SSL认证申请及配置流程
- 一文读懂HTTPS以及SSL单向验证和双向验证
- 如何利用 SSL/TLS 保护你的 Linux 邮件服务
- kali渗透:web登录密码嗅探神器SSLstrip,这样使用才是正确姿势
- 阿里云centOS Ngnix配置ssl证书
- 宝塔面板开启反向代理后,怎么自动续签Let's Encrypt免费SSL证书
- Nginx服务器安装SSL证书方法教程
- 推荐一款github上开源的SSL VPN
- 免费的SSL证书它不香吗?香,真香
