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

相关推荐
大小科圣26 分钟前
Tomcat介绍及部署
运维·服务器
好多知识都想学1 小时前
第二章Linux 命令概述
linux·运维·服务器
码叔义1 小时前
X509TrustManager信任SSL证书
python·网络协议·ssl
wo3258661451 小时前
浪潮英政服务器CS5420H2配置阵列时报错The reguested command has inualid arguments.解决方法
运维·服务器
熊峰峰1 小时前
Linux第0节:Linux环境的搭建
linux·运维·服务器
半夏知半秋1 小时前
linux下的网络抓包(tcpdump)介绍
linux·运维·服务器·网络·笔记·学习·tcpdump
深思慎考2 小时前
Linux——进程间通信初解(匿名管道与命名管道)
java·linux·服务器
深思慎考2 小时前
Linux——进程间通信(system V共享内存)
linux·服务器·算法
Watink Cpper2 小时前
[多线程]基于环形队列(RingQueue)的生产者-消费者模型的实现
linux·运维·服务器·消费者·生产者·生产者消费者模型
WoTrusSSL2 小时前
小程序SSL证书过期怎么办?
网络协议·小程序·ssl