如何在 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 Package Manager 或 Ubuntu Software Center。要使用 CLI 进行检查,请运行以下命令 -
openssl version
这将显示您系统上安装的 OpenSSL 版本。如果返回 openssl 命令未找到的错误,则表示未安装 OpenSSL。
或者,您可以通过运行以下命令来使用特定于您的发行版的包管理器(例如,APT for Ubuntu):
sudo apt-get install openssl
这将安装 OpenSSL 及其依赖项。安装后,您可以使用“openssl version”再次检查其版本来验证它是否已正确安装。
在 Linux 中生成 CSR 之前,请确保您具有 root 访问权限并且已按照上述步骤在系统上安装了 OpenSSL。满足这些要求至关重要,因为如果没有这些要求,生成 CSR 将不会成功,并且可能会严重影响网站安全。
使用 OpenSSL 命令行工具生成 CSR
生成证书签名请求 (CSR) 是为您的网站获取 SSL/TLS 证书过程中的关键步骤。在 Linux 中生成 CSR 最常用的工具之一是 OpenSSL 命令行工具。该工具使您能够使用一个简单的命令创建新的私钥和 CSR。
分步说明
要使用 OpenSSL 生成 CSR,请按照以下步骤操作 -
打开终端窗口并运行以下命令 -
openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr
该命令会创建一个 2048 位加密的新私钥,同时生成一个新的 CSR。
系统将提示您输入有关您的组织的一些信息,例如国家/地区代码、州/省、城市/地区、组织名称和常用名称(域名)。如果您不想提供某些信息,可以按 Enter 键将某些字段留空。
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank For some fields there will be a default value,
If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:California Locality Name (eg, city) []:San Francisco
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example Company Ltd. Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:example.com Email Address []:
提供所有必需的信息后,该工具将在您的当前目录中生成两个文件 - “example.com.key”和“example.com.csr”。前者是您的私钥,后者是您的 CSR。
解释命令中使用的每个选项
现在让我们仔细看看 OpenSSL 命令中使用的每个选项: - req:这告诉 OpenSSL 创建一个新的 CSR。
new - 这告诉 OpenSSL 我们想要生成一个新的 CSR,而不是使用现有的 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) 工具更方便。有多种 GUI 工具可用于在 Linux 中生成 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 工具之一可以帮助您简化操作。