📌  相关文章
📜  如何在 Linux 中生成 CSR(证书签名请求)?

📅  最后修改于: 2021-10-28 02:33:56             🧑  作者: Mango

证书签名请求(CSR)是在申请 SSL 证书时提供给证书颁发机构的块密文。代 用于安全套接字层 (SSL) 的证书签名请求 (CSR) 在各种发行版的 Linux 中很常见。 CSR 是在服务器上生成的,它存储与证书中包含的组织、域名、国家、城市有关的信息。 CSR 证书可以在任何需要加密通信的网站上使用。要生成 SSL 证书,必须生成 CSR 证书。要获得自签名的 SSL 证书,需要创建 CSR,生成后提交给证书颁发机构以获取 SSL 证书。

证书有两种:

  • 自签名证书:自签名证书由身份或其自己的私钥而不是受信任的证书颁发机构签名。这些证书的有效期为一年。要创建 SSL 证书,本地证书颁发机构将帮助您的环境中可以在组织中使用的人员。它用于任何本地部署的应用程序和 FTP 服务器等。
  • CA 授权证书:这些证书由可信第三方实体颁发,它们在那里颁发数字证书。它在面向 Internet 的服务器上用于数据加密。证书的有效性取决于所采取的计划。颁发 CA 证书需要域验证

生成证书签名请求 (CSR):

要在 Debian OS 上生成 CSR,必须先打开 OpenSSL。 OpenSSL 是一个用于生成私钥、创建 CSR、安装 SSL/TLS 证书以及识别证书信息的工具。要使用 OpenSSL Tool 生成 CSR,首先需要将该工具安装到 Linux 系统中,因此安装执行以下命令,

$ sudo apt install openssl

如何在 Linux 中生成 CSR(证书签名请求)

验证Linux系统上是否正确安装了OpenSSL并且配置也正确,执行命令查看OpenSSL的详细信息及其版本。

$ openssl version -a

如何在 Linux 中生成 CSR(证书签名请求)

执行命令生成CSR。执行后,它会询问有关您所在的域、组织、国家和城市的一些信息。由于证书是由CA认证签发的,因此需要根据文件提供法律信息。

Options Description
-new New request
-newkey rsa:2048 To create a 2048-bit RSA key
-nodes This is used as it doesn’t encrypt the key
-keyout Specifying filename to send the key to the sample.com.csr 
-out Specifying file name to write to CSR 
$ openssl req -new -newkey rsa:2048 -nodes -keyout sample.com.key -out sample.com.csr

如何在 Linux 中生成 CSR(证书签名请求)

Requested Information  Description
Country Name Two-letter abbreviation for the country you reside in 
State or Province Name Full name of the state from where your organization operates
Locality Name Name of the city where the organization operates from 
Organization Name Name of Organization. If registered as an individual, enter the name of the person requesting the certificate. 
Organizational Unit Name Section or sector in which the organization operates
Common Name The domain name to whom you’re purchasing an SSL certificate. It should be a Fully Qualified Domain Name 
$ ls sample.com.csr

证书应保密,不得与任何人共享。要查看文件的内容,请使用cat实用程序命令。

$ cat sample.com.csr

如何在 Linux 中生成 CSR(证书签名请求)

生成包含与公钥关联的私钥的密钥文件,然后将其提取到另一个文件中。要为域名 MYCSR 生成密钥,请执行以下命令。此密钥将生成密钥长度为 2048 位的 RSA 算法。密钥存储在文件中,查看存储在 PEM 格式中的内容使用cat实用程序函数

$ openssl req -newkey rsa:2048 -keyout PRIVATEKEY.key -out MYCSR.csr

如何在 Linux 中生成 CSR(证书签名请求)

证书应保密,不得与任何人共享。要查看密钥文件的内容,请使用cat实用程序命令。使用此命令,我们可以导航到存储密钥的文件。要复制私钥文件的内容,请选择并复制整个内容,包括“BEGIN RSA PRIVATE KEY”“END RSA PRIVATE KEY”

$ cat PRIVATEKEY.key

如何在 Linux 中生成 CSR(证书签名请求)

验证 CSR 文件:

创建CSR后,在将CSR证书发送给CA进行签名或自签名之前,请验证详细信息或在生成CSR证书期间提供的信息。

$ openssl req -text -in MYCSR.csr -noout -verify

如何在 Linux 中生成 CSR(证书签名请求)

使用私钥的自签名证书:

生成 CSR 后,要签署证书,将 CSR 提供给 CA,如VerisignDigiCert等。在测试目的或内部用例的情况下,可以选择对 CSR 证书进行自签名,这反过来由你自己而不是 CA。要为您自己的私钥自签名证书,请执行 OpenSSL 命令,

$ openssl x509 -in MYCSR.csr -out MYCSR.crt -req -signkey PRIVATEKEY.key -days 365

如何在 Linux 中生成 CSR(证书签名请求)

现在,生成证书签名请求,还可以生成证书的私钥以保持证书的机密性。上述命令中, -days用于指定证书的有效期,此处为 CSR 的有效期。输出验证在生成 CSR 期间提供的信息,之后它会要求用户在创建RSA 私钥时输入密码短语,在此处输入相同的密码以获取先前创建的 RSA 私钥.