如何在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 version 

这将显示已安装在您的系统上的OpenSSL版本。如果返回错误“openssl命令未找到”,则表示未安装OpenSSL。

或者,您可以使用特定于您的发行版的软件包管理器(例如,Ubuntu的APT)运行:

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) 工具更方便。有各种可用于在Linux中生成CSR的GUI工具。

一些可用于生成的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工具之一可以帮助您简化操作。

更新于:2023年6月6日

241 次查看

开启您的职业生涯

通过完成课程获得认证

开始学习
广告