如何在 Linux 中生成 CSR(证书签名请求)?
简介
在当今的数字时代,网站安全已成为企业需要考虑的极其重要的方面。网络犯罪日益猖獗,攻击者不断寻找新的方法来利用在线系统的漏洞。保护网站免受网络威胁的主要方法之一是实施 SSL/TLS 证书,这有助于加密用户浏览器和 Web 服务器之间传输的数据。
证书签名请求 (CSR) 是获取 SSL/TLS 证书的重要组成部分。它包含有关申请证书的域名和组织的信息,以及验证所需的其他详细信息。
在 Linux 中生成 CSR 概述
在 Linux 中生成 CSR 可以通过多种方法完成,例如使用 OpenSSL 命令行工具或 Certbot 或 Acme.sh 等 GUI 工具。每种方法都需要仔细遵循特定的步骤才能获得有效的 CSR。该过程通常包括生成私钥(用于加密在 Web 服务器和浏览器之间发送的数据),创建证书签名请求 (CSR),其中包含网站所有者和域名信息以及 CA 验证所需的其他详细信息。
将包含 CSR 代码的请求文件提交给您最喜欢的 CA 提供商(例如 ComodoSSL.com 或 DigiCert.com),他们会在向您颁发 SSL/TLS 证书之前验证您的提交请求。在本文中,我们将重点介绍如何在 Linux 中使用 OpenSSL 命令行工具生成 CSR。
准备在 Linux 中生成 CSR
生成 CSR 的先决条件
在 Linux 中生成 CSR 之前,必须满足一些先决条件。首要条件是拥有服务器的 root 权限。
这使您拥有修改关键系统文件和以管理员权限运行命令所需的权限。此外,您需要在系统上安装 OpenSSL。
检查系统上是否安装了 OpenSSL
要检查系统上是否已安装 OpenSSL,您可以使用命令行界面 (CLI) 或 GUI 工具,例如 Synaptic 软件包管理器或 Ubuntu 软件中心。要使用 CLI 进行检查,请运行以下命令:
openssl 版本
这将显示系统上安装的 OpenSSL 版本。如果返回"未找到 openssl 命令"错误,则表示未安装 OpenSSL。
或者,您也可以使用特定于您发行版的软件包管理器(例如,Ubuntu 的 APT),运行以下命令:-
sudo apt-get install openssl
这将安装 OpenSSL 及其依赖项。安装完成后,您可以使用 `openssl version` 再次检查其版本,以验证其是否已正确安装。
在 Linux 中生成 CSR 之前,请确保您拥有 root 权限,并已按照上述步骤在系统上安装了 OpenSSL。满足这些要求至关重要,因为如果没有这些要求,CSR 生成将无法成功,并且会严重影响网站安全性。
使用 OpenSSL 命令行工具生成 CSR
生成证书签名请求 (CSR) 是获取网站 SSL/TLS 证书过程中的关键步骤。 OpenSSL 命令行工具是 Linux 中生成 CSR 最常用的工具之一。此工具允许您使用一个简单的命令创建新的私钥和 CSR。
分步说明
要使用 OpenSSL 生成 CSR,请按照以下步骤操作 -
打开终端窗口并运行以下命令 -
openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr
此命令将创建一个采用 2048 位加密的新私钥,并同时生成一个新的 CSR。
系统将提示您输入一些有关您组织的信息,例如国家/地区代码、州/省、城市/地区、组织名称和通用名称(域名)。如果您不想提供某些信息,可以按 Enter 键将某些字段留空。
您将被要求输入将纳入证书请求的信息。 您即将输入的是所谓的"可分辨名称"或 DN。 字段有很多,但您可以将一些字段留空。某些字段会设置默认值。 如果您输入".",则该字段将留空。----- 国家/地区名称(2 个字母代码)[AU]:US 州或省/自治区名称(全名)[Some-State]:California 地点名称(例如,城市)[]:San Francisco 组织名称(例如,公司)[Internet Widgits Pty Ltd]:Example Company Ltd. 组织单位名称(例如,部门)[]: 通用名称(例如,服务器 FQDN 或您的名称)[]:example.com 电子邮件地址[]:
提供所有必需信息后,该工具将在您的当前目录中生成两个文件 - "example.com.key"和"example.com.csr"。前者是您的私钥,后者是您的 CSR。
解释命令中使用的每个选项
现在让我们仔细看看 OpenSSL 命令中使用的每个选项:- req:这告诉 OpenSSL 创建一个新的 CSR。
new − 这告诉 OpenSSL 我们要生成一个新的 CSR,而不是使用现有的。
newkey rsa:2048 − 这告诉 OpenSSL 创建一个使用 2048 位加密的新 RSA 私钥。
nodes − 这告诉 OpenSSL 不要加密私钥。换句话说,它创建一个未加密(明文)的私钥。
keyout example.com.key − 这指定了您要保存私钥的位置。将"example.com"替换为您的实际域名。
out example.com.csr − 这指定了您要保存 CSR 的位置。同样,请将"example.com"替换为您的实际域名。
常见错误及避免方法
以下是使用 OpenSSL 生成 CSR 时应避免的一些常见错误 −
错误输入组织信息可能会导致以后申请 SSL/TLS 证书时出错。请确保准确输入所有必填字段,并在提交前仔细检查。
忘记填写或输入错误的电子邮件地址可能会导致您延迟收到有关 SSL/TLS 证书申请状态或到期日期的重要通知。
使用弱加密(少于 2048 位)的私钥可能会危及您网站的安全性,并允许黑客窃取用户的敏感数据。
始终使用强加密以确保最大程度的安全。
使用 GUI 工具生成 CSR(可选)
虽然通过命令行生成 CSR 是最常用的方法,但有些用户可能觉得使用图形用户界面 (GUI) 工具更方便。Linux 系统中有多种 GUI 工具可用于生成 CSR。
列举一些可用于生成的 GUI 工具
OpenSSL 证书管理器 − 此工具是 OpenSSL 软件包的一部分,提供用于管理证书(包括生成 CSR)的图形界面。它适用于大多数 Linux 发行版,并提供易于使用的界面来创建 CSR。
XCA − 这是一个开源证书和密钥管理工具,支持创建 SSL/TLS 证书(包括 CSR)。
它提供证书模板、密钥备份、撤销支持等高级功能。
Keytool IUI − 如果您正在寻找基于 Java 的工具来在 Linux 中生成 CSR,那么 Keytool IUI 可能是您的最佳选择。
它使用 Java Keytool 命令行实用程序,但提供了直观的图形用户界面和一些实用功能。
结论
在 Linux 中生成 CSR 是使用 SSL/TLS 证书保护您的网站安全的关键一步。虽然有多种方法可以实现这一点,但使用 OpenSSL 命令行工具仍然是最受欢迎的选择,因为它简单有效。
如果您是 Linux 新手或不熟悉命令行界面,那么使用上述 GUI 工具之一可以帮助您更轻松地完成操作。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

