什么是 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 命令。

相关推荐
阿^觅16 分钟前
基础IO -- 动静态库(1)
linux·服务器
Channing Lewis18 分钟前
Python 3.9及以上版本支持的新的字符串函数 str.removeprefix()
服务器·python
抠脚学代码37 分钟前
LINUX 实现终端动态进度条记录
linux·运维·服务器·进度条
bigsea761 小时前
mongoose 支持https踩坑纪实
网络协议·http·https
可涵不会debug1 小时前
Git在码云上的使用指南:从安装到推送远程仓库
linux·运维·服务器·c++·git
hunandede1 小时前
Linux中的nc命令是网络工具中的一种,用于进行网络连接和数据传输。下面是nc命令的使用方法和实例:
linux·运维·服务器
WoTrusSSL2 小时前
SSL 与 TLS:简单解释主要区别
网络·安全·https·ssl
m0_748236583 小时前
SQL-Server链接服务器访问Oracle数据
服务器·sql·oracle
Zfox_3 小时前
【Linux】Socket编程-TCP构建自己的C++服务器
linux·服务器·c语言·c++·tcp/ip