OpenSSL工具介绍

1,068 阅读4分钟

OpenSSL tool

OpenSSL工具介绍

现在,SSL证书的需求量很大。自从谷歌开展 "无处不在的HTTPS "活动以来,加密环境正在发生很大变化。他们最初给了数字证书一个SEO提升,作为安装数字证书的诱因,然后Chrome浏览器使HTTPS对每个人来说几乎是必要的。如果你不使用SSL证书,火狐和Chrome等流行的浏览器会将该网站标记为不安全。SSL的部署对于网站的成功和安全至关重要。而且,由于许多网站所有者是第一次了解SSL,为他们提供所有必要的工具和服务是至关重要的。OpenSSL就是这样一个工具。在本专题中,我们将了解OpenSSL工具。

什么是OpenSSL?

OpenSSL是一个通用的密码学软件包,以开源的方式实现了TLS协议。它可用于Windows、Linux、macOS以及BSD计算机,并在1998年首次发布。用户可以使用OpenSSL来执行各种与SSL相关的操作,如生成CSR和私钥,以及安装SSL证书。

OpenSSL的目的是什么?

用户申请数字证书,并使用OpenSSL生成证书签名请求)在服务器上安装SSL文件。你还可以将证书转换为不同的SSL格式,并进行额外的验证。

如何使用OpenSSL?

这都是关于OpenSSL的命令行。我们在下面为个人用户提供了一个典型的OpenSSL命令列表。

确保你使用的是最新版本的OpenSSL。

知道你有什么版本的OpenSSL是至关重要的,因为它决定了你可能使用的加密算法和协议。

最新的OpenSSL版本是1.1.1。它是第一个提供对TLS 1.3支持的版本。1.0.2和1.1.0是以前的两个版本,现在仍然被支持。

运行下面的命令,看看你有什么版本的OpenSSL。

openssl version–a

CSR生成

用户可以用OpenSSL生成他们自己的CSR代码。CSR是一个包含网站和业务信息的编码文本块。用户应将CSR提交给证书颁发机构进行审批。证书请求需要一个私钥,公钥是由它产生的。虽然你可以利用当前的私钥,但最好是在用户每次创建CSR时产生一个新的私钥。

如何单独生成私钥?

用户必须指定密钥算法、密钥大小和备用口令来产生你的私钥。RSA是 典型的密钥算法,然而,ECDSA在某些情况下也可以使用。确保用户在选择密钥算法时不会有任何兼容性困难。

当利用RSA密钥算法时,选择2048比特作为密钥大小,ECDSA算法为256比特。任何小于2048的密钥大小都是不安全的,而更大的数值可能会导致性能下降。

然后,用户必须确定私钥是否需要口令。有些服务器会拒绝接受带有口令的私钥。

只要准备好产生一个私钥(使用RSA算法),就运行下面的命令。

opensslgenrsa -out domain.key 2048

使用该命令将在你的当前目录下创建domain.key文件。PEM格式将被用来存储你的私钥。

你的私钥的编码内容可以用以下命令查看。

cat domain.key

运行下面的命令来解码私钥。

opensslrsa -text -in domain.key -noout

如何提取公钥?

要从私钥中提取公钥,需要使用下面的命令。

opensslrsa -in domain.key -pubout -out domain_public.key

生成一个证书签名请求

在你成功生成私钥后,是时候建立CSR了。它将是PEM格式,并将包含企业的信息和从私钥中生成的公钥。要生成CSR,请使用以下命令。

opensslreq -new -key domain.key -out domain.csr

用户会被OpenSSL问到几个问题。请考虑以下情况。

  1. 国家名称。输入国家的双字母代码。如果用户拥有商业验证或扩展验证证书,请确保用户提交的国家是他的组织的正式住所。
  2. 州/省名称:输入用户企业注册所在州的完整名称。
  3. 地方名称。输入公司所在的城市或城镇的名称。
  4. 组织名称:输入公司的正式注册名称。例如,对于域名验证证书,用户可以使用NA
  5. 组织单位名称:通常是网络管理。
  6. 通用名称。输入将分配给你的SSL证书的完全合格域名(FQDN)。考虑域名educba.com。在域名前面加一个星号(如*.educba.com)以激活通配符证书。
  7. 电子邮件地址。给出一个有效的电子邮件地址。
  8. 具有挑战性的密码:这是一个过时的特征,证书颁发机构不再要求。如果有任何疑惑,请将此框留空。

验证证书的信息

CA发送SSL证书后,执行下面的命令,以使证书的信息与私钥相匹配。

openssl x509 -text -in domain.crt –noout

结论--OpenSSL工具

在这篇文章中,我们已经看到了流行的OpenSSL命令列表。