什么是 OpenSSL? OpenSSL 如何工作?

正确实施 SSL 对网站的安全和成功至关重要。 而且,由于许多网站所有者都是第一次了解 SSL,因此必须为他们配备所有必要的工具和实用程序。 OpenSSL 就是这样一种工具。 那么,什么是 OpenSSL,为什么它如此重要?

以下指南涵盖了这一实用工具的方方面面,包括如何使用 OpenSSL和各种OpenSSL 命令,以便轻松高效地管理 SSL。


目录

  1. 什么是 OpenSSL?
  2. OpenSSL 有什么用途?
  3. 如何使用 OpenSSL
  4. OpenSSL 常用命令

什么是 OpenSSL?

OpenSSL 是一个全能密码学库,提供 TLS 协议的开源应用。 它允许用户执行各种 SSL 相关任务,包括 CSR(证书签名请求)生成、私钥生成和 SSL 证书安装。


OpenSSL 有什么用途?

OpenSSL 是一种开源命令行工具,通常用于生成 CSR 和私钥、在服务器上安装 SSL 文件、合并文件、将证书转换为各种 SSL 格式、验证证书信息以及排除任何潜在问题。

要在网站上安装 SSL 证书,必须遵循几个必要步骤,这些步骤对于任何服务器或电子邮件客户端都是一样的。 当你没有网络控制面板或想简化整个过程时,OpenSSL 尤其方便。

由于并非所有服务器都提供 SSL 管理的网络用户界面,在某些平台上,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 版本 -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


向 CA 发送 CSR

运行以下命令查看并复制 CSR 的全部内容:

cat yourdomain.csr

确保包含–BEGIN CERTIFICATE REQUEST–END CERTIFICATE REQUEST–标记,并将所有内容粘贴到 SSL 供应商的订单中。


在 OpenSSL 中检查证书

CA 将 SSL 证书发送到收件箱后,运行下面的命令确保证书信息与你的私钥相匹配。

openssl x509 -text -in yourdomain.crt -noout

OpenSSL 常用命令列表到此结束。 如果你愿意,可以学习所有 OpenSSL 命令


底线

现在,你已经知道什么是 OpenSSL 以及它的工作原理,可以使用它的命令在各种服务器上生成、管理和安装 SSL 证书。 在没有虚拟主机面板的情况下,使用 OpenSSL 有时是唯一的选择。

你可能需要一段时间才能熟练掌握 OpenSSL 命令,但使用得越多,SSL 证书管理就会变得越好。

如果您想了解有关 OpenSSL 及其工作原理的更多信息,这本免费书是您的绝佳资源。

常见问题

SSL 和 OpenSSL 有什么区别?

SSL/TLS 是一种加密协议,用于加密网络上两个计算机应用程序之间的通信。

另一方面,OpenSSL 是一种加密实用程序,使用命令行来管理 SSL/TLS 证书的生成、安装和识别。

复制链接

Openssl 是免费使用的吗?

是的,OpenSSL 可免费用于商业和非商业目的。

复制链接

立即订购 SSL 证书, 可节省 10% 的费用!

快速发行, 强大加密, 99.99% 的浏览器信任度, 专业支持和 25 天退款保证. 优惠券代码 SAVE10

撰写人

经验丰富的内容撰稿人, 擅长 SSL 证书. 将复杂的网络安全主题转化为清晰, 引人入胜的内容. 通过有影响力的叙述, 为提高数字安全作出贡献.