什么是 OpenSSL?OpenSSL 如何工作?
正确实施 SSL 对网站的安全和成功至关重要。而且,由于许多网站所有者都是第一次了解 SSL,因此为他们配备所有必要的工具和实用程序至关重要。OpenSSL 就是这样一种工具。那么,什么是 OpenSSL?为什么它如此重要?
以下指南涵盖了此实用实用程序的各个方面,包括如何使用 OpenSSL和各种OpenSSL 命令进行轻松高效的 SSL 管理。
什么是 OpenSSL?
OpenSSL是一个开源软件库和命令行工具,用于实现安全通信的SSL和TLS协议。它提供加密功能,例如生成密钥和证书、加密数据和验证证书,使其成为互联网安全和服务器管理的必备工具。
OpenSSL 用于什么?
OpenSSL 是一个开源命令行工具,用于生成 CSR和私钥、安装 SSL 文件、合并和转换证书为不同的 SSL 格式、验证证书详细信息以及解决问题。它在管理和保护 SSL/TLS 实施方面发挥着至关重要的作用。
要在您的网站上安装 SSL 证书,您必须遵循一些强制性步骤,这些步骤对于任何服务器或电子邮件客户端都是相同的。当您没有 Web 控制面板或想要简化整个过程时,OpenSSL 特别方便。
由于并非所有服务器都提供用于 SSL 管理的 Web 用户界面,因此在某些平台上,OpenSSL 是导入和配置证书的唯一解决方案。
如何使用 OpenSSL
OpenSSL 的全部内容都是命令行。您所要做的就是学习一些常用的 OpenSSL 命令,随着每个新证书的出现,配置过程将变得更快、更轻松。
OpenSSL 于 1998 年首次发布,适用于 Linux、Windows、macOS 和 BSD 系统。大多数 Linux 发行版都预编译了 OpenSSL。
如何检查 Linux 上是否安装了 OpenSSL?
要检查您的 Linux 系统上是否安装了 OpenSSL,请使用以下命令。
对于使用 rpm 包的 GNU/Linux 发行版:
rpm -qa | grep -i openssl
对于使用 deb 包的 GNU/Linux 发行版:
dpkg -l | grep -i openssl
对于 Arch Linux 使用:
pacman -Q openssl
如何在 Windows 上使用 OpenSSL?
如果您使用的是 Windows 系统,您可以从这里下载 OpenSSL。
默认安装将在 C 盘上为该程序创建一个目录 -C:\OpenSSL-Win32
要运行该程序,请转到C:\OpenSSL-Win32\bin\目录并双击openssl.exe文件。将打开一个带有OpenSSL>提示符的文本窗口。
在此提示符下输入您需要的 OpenSSL 命令。您生成的文件将位于同一目录中。Windows 的 OpenSSL 命令与 Linux 服务器上使用的命令相同。
常用 OpenSSL 命令
下面我们为普通用户整理了一些常用的 OpenSSL 命令。您可以随时使用它们来生成或管理证书。
检查 OpenSSL 版本
了解您拥有的 OpenSSL 版本至关重要,因为它决定了您可以使用哪些加密算法和协议。您可以通过运行以下命令来检查您的 OpenSSL 版本:
openssl version –a
使用 OpenSSL 生成 CSR
您可以使用 OpenSSL 创建CSR(证书签名请求)代码。运行以下命令生成 CSR:
openssl req -new -key yourdomain.key -out yourdomain.csr
您还可以借助–subj开关在命令行内提交您的信息。
此命令将禁用问题提示:
openssl req -new -key yourdomain.key -out yourdomain.csr -subj "/C=US/ST=CA/L=San Francisco/O=Your Company, Inc./OU=IT/CN=yourdomain.com"
或者,您可以通过CSR 生成器工具创建 CSR 。
使用 OpenSSL 生成私钥
要生成私钥,您需要指定密钥算法、密钥大小和可选密码。标准密钥算法是 RSA,但您也可以针对特定情况选择 ECDSA。选择密钥算法时,请确保不会遇到兼容性问题。在本文中,我们仅展示如何通过 RSA 算法生成私钥。
对于密钥大小,使用 RSA 密钥算法时应选择 2048 位,使用 ECDSA 算法时应选择 256 位。任何低于 2048 的密钥大小都不安全,而更高的值可能会降低性能。
最后,你应该决定是否需要为你的私钥设置密码。请注意,某些服务器不接受带有密码的私钥。
准备好生成私钥(使用 RSA 算法)后,运行以下命令:
openssl genrsa -out yourdomain.key 2048
此命令将在您的当前目录中创建yourdomain.key文件。您的私钥将采用PEM格式。
使用 OpenSSL 查看私钥信息
您可以通过以下命令查看私钥的编码内容:
cat yourdomain.key
使用 OpenSSL 解码私钥
要解码您的私钥,请运行以下命令:
openssl rsa -text -in yourdomain.key -noout
使用 OpenSSL 提取公钥
要从私钥中提取公钥,请使用以下命令:
openssl rsa -in yourdomain.key -pubout -out yourdomain_public.key
使用 OpenSSL 立即创建您的私钥和 CSR
OpenSSL 功能非常多样,还有一个命令可以生成私钥和 CSR:
openssl req -out yourdomain.csr -new -newkey rsa:2048 -nodes -keyout yourdomain.key
此命令生成没有密码的私钥(-keyout yourdomain.key)和 CSR 代码(out yourdomain.csr)。
使用 OpenSSL 检查 CSR 信息
为了确保在向 CA 提交 CSR 之前提供了正确的信息,请运行以下命令:
openssl req -text -in yourdomain.csr -noout –verify
将 CSR 发送给 CA
运行以下命令,查看并复制CSR的全部内容:
cat yourdomain.csr
确保包含—–BEGIN CERTIFICATE REQUEST—–和—–END CERTIFICATE REQUEST—标签,并将所有内容粘贴到 SSL 供应商的订单中。
在 OpenSSL 中检查证书
在您的 CA 将 SSL 证书发送到您的收件箱后,请运行以下命令以确保证书的信息与您的私钥匹配。
openssl x509 -text -in yourdomain.crt –noout
这就是我们常见的 OpenSSL 命令列表。如果您愿意,可以研究所有 OpenSSL 命令。