如何生成自签名 SSL 证书 Rocky Linux 8

SSL(安全套接字层)和 TLS(传输层安全)是用于保护 Web 服务器和客户端 Web 浏览器之间的 Web 流量的安全协议。 通常,它们用于保护机密数据,例如信用卡数据、登录凭据和其他私人信息。 与其他类型的 SSL 证书不同,自签名 SSL 证书是由拥有它的个人签署的证书。 通常,自签名 SSL 证书是完全免费的,用于在本地托管的 Web 服务器上进行测试。

在这篇文章中,我们将向我们展示 Rocky Linux 8 中生成自签名 SSL 证书。

先决条件

  • 在 云平台上运行 Rocky Linux 8 的服务器
  • 在我们的服务器上配置的 root 密码

创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Rocky Linux 8 作为至少 1GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

安装 OpenSSL

在开始之前,必须在我们的服务器或桌面上安装 OpenSSL 工具包以生成自签名证书。

如果未安装,我们可以通过运行以下命令来安装它:

dnf install openssl -y

安装后,使用以下命令验证 OpenSSL 版本。

rpm -qa openssl

我们将获得以下输出:

openssl-1.1.1k-5.el8_5.x86_64

生成私钥

首先,我们需要创建一个私钥来启用加密。

让我们使用以下命令创建一个受密码保护的 2048 位 RSA 私钥:

openssl genrsa -des3 -out private.key 2048

系统将要求我们提供密码,如下所示:

Generating RSA private key, 2048 bit long modulus (2 primes)
...........................................................+++++
..+++++
e is 65537 (0x010001)
Enter pass phrase for private.key:
Verifying - Enter pass phrase for private.key:

我们可以使用以下命令查看私钥的内容:

cat private.key

我们应该看到以下输出:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,E0C0E24222815CE0

ZWzirTOp+UGRSc44dbm0iW5R0gCXxd3C2LwwGbTKaSRxB5sQUurFvFP5ilCuywoR
lNvz3Bd9vCPFnR8pVw355FLpc9qxLsxjweXXUaDjDg+W3s21hQqaWXOQLXjKvA2c
W3cC9eMApgo8l1mG+a3fFIj/UAFElhmMLSnqdK2tH/gjpDbZUtaZcywqB7UW20tU
uCyJN0T/rSHPCQ1w/7LvnK1e0cAn0ZEOHzdsdcbjYeBuRfv/oSHQAsSkmFxTZQCq
p02gAiexddciXiTlDTp24Tr7Fp4BMkBktE2BX95ZjXY8dbidBSrnZki8RbxZwNeq
Lr/cracFZ4h+sxac3/Pn25DcZEVyJKTmybypuNea63tsJrU0eHs7rfYqXcnyfhRg
PrlPSWUPFwx3yuRkgZfo1OXcR1vuhKpvIOOm3awa3WyXb5t9PNwv/FeT2Ta1guTj
NksxFEVCP8ven2VxLWD1ESf/oUE9jYmWDXxIU+xrgrVW5Bklv6A/EewR8T/oZsYB
ap/SgHbW2/KzXYWEoB4fcVdzonTwZNutDFw2p1dzNVz792IwPCFsrE6BnNkoyyXE
DQJAVE99fKgXY9f4L9qZru3yYNd3lP1g+2PzkX1u/QN2Ggr0YiPEJdixWh7QxwC8
ANALCCKUSJTm02YewhJHE+eU/UIfa1GQGaEJ+Pwxx6CjJCzfU571SuZBDpmz07Cu
FBlx1Qzzmn2SWbFiIlLCS84pEOsByw26p+NhHzKZAhKHHq4DKrNCnDEWOU95GbSn
I0QIIdTuY+X2sKj9a26nkjs8kWb3GfDAf/3pNXynRapxepRtceSfKTWOsEDIGGLA
pgnuBIT6NaZ7zIe7KeZpnzbK6dJsltji9uI9+zebNjoq6CND+TTprpPqATVSj+E9
8xS2BQSX5se6t47ierbP3Rx1LP95tayoYI9bPUHPaTSzrx2R43SZSa0r9JVq9gLl
MRdXhd+qUh2eNbDSWk0F3DiKbhbi/B3WwQA9l7eq/OYgDPo2TxXoyDWJlmJ+LllF
iVA9sUI21+aJE4I+5BXQDz/dyLatuis+vAIpYCRSRcnsK7Y8ALe27NyViKO7ir7F
gu+BGkcfAvZg2d/9G0IV+syRblW7OGvwphk+oy2Us0ggAh8BvoIp3ra9t62eOHCg
rl784OEAW8w94WFzmCvmCLPzmXDUkwLIo06WmYzWhrEHhivzOc9W3WiJ9jlzBmR2
V9mWsNErytPUiEBhRm9c9i9ggrehN9PsYjEuOM3KYCbqneMXe4yH7wYlxJ70r3A0
0/cBxMyG/tlzgDqyhHV8tYEMFL9B3lqTsTWP/bfc2baTd4sstLrVESE+0f0BpeoI
t6zKCOUe9tq4RBI+9selgPECwPhttJw4IKMuH9s7XAjaOiqP7TE8M79/VsgttGoJ
/mxXWA8uVwEqonFx6CrAe1oOnuDObP5uC5ikPf3GnBDk2wf8pt0VteIJVCd6Pamy
6Hlb/eg9VtzQHpJBXOthjKGE1CGBw3rv/Q9eNaS8QhDUFQ09EkW6TBJVCI86QPX9
4tWhsj7DLHXN1Mt55unMjcb+tez+QXI7EgBySxBfycV2zbQ7odV6WZHEUCuZbJzV
-----END RSA PRIVATE KEY-----

生成证书签名请求

接下来,如果我们希望对证书进行签名,我们将需要证书签名请求 (CSR)。 CSR 包括有关公钥、国家和组织的信息。

我们可以使用我们的私钥创建一个名为 server.csr 的 CSR,如下所示:

openssl req -key private.key -new -out server.csr

我们将被要求提供我们的私钥密码和一些 CSR 信息以完成该过程,如下所示:

Enter pass phrase for private.key:
We are about to be asked to enter information that will be incorporated
into wer certificate request.
What we are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but we can leave some blank
For some fields there will be a default value,
If we enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:GUJ
Locality Name (eg, city) [Default City]:AHMEDABAD
Organization Name (eg, company) [Default Company Ltd]:Atlantic
Organizational Unit Name (eg, section) []:IT
Common Name (eg, wer name or wer server's hostname) []:server
Email Address []:hitjethva@gmail.com

Please enter the following 'extra' attributes
to be sent with wer certificate request
A challenge password []:
An optional company name []:

生成自签名证书

自签名证书是由其自己的私钥签名的证书。 它用于加密数据。

我们可以使用私钥和 CSR 创建名为 server.crt 的自签名证书,如下所示:

openssl x509 -signkey private.key -in server.csr -req -days 365 -out server.crt

我们应该看到以下输出:

Signature ok
subject=C = IN, ST = GUJ, L = AHMEDABAD, O = Atlantic, OU = IT, CN = server, emailAddress = hitjethva@gmail.com
Getting Private key
Enter pass phrase for private.key:

注意:-days 选项指定证书有效的天数。

我们现在可以使用 OpenSSL 命令以纯文本形式查看证书内容:

openssl x509 -text -noout -in server.crt

我们应该在以下输出中看到证书信息:

Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number:
            6f:bd:1d:8d:be:52:8e:9b:ba:74:29:0c:e7:15:2b:01:42:5c:66:8d
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = IN, ST = GUJ, L = AHMEDABAD, O = Atlantic, OU = IT, CN = server, emailAddress = hitjethva@gmail.com
        Validity
            Not Before: Mar 15 11:42:36 2022 GMT
            Not After : Mar 15 11:42:36 2023 GMT
        Subject: C = IN, ST = GUJ, L = AHMEDABAD, O = Atlantic, OU = IT, CN = server, emailAddress = hitjethva@gmail.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:b1:d0:e3:36:46:64:4c:70:b6:24:bf:f7:5f:9a:
                    8a:5c:bd:89:b8:f0:b8:56:51:e5:f6:e5:ed:d1:6c:
                    cc:89:7a:97:c3:15:89:98:9a:df:74:e1:a1:2e:da:
                    12:7c:a2:64:d6:62:1b:55:85:94:dc:5c:10:89:63:
                    de:bd:f7:e2:56:68:7a:3c:48:88:7a:fd:d5:df:12:
                    8e:28:28:d6:77:5b:2d:51:53:84:f9:c3:d2:a7:db:
                    6f:2d:88:00:e0:b1:93:f8:a4:66:df:03:17:c4:5a:
                    9c:49:37:86:bf:34:c0:83:94:1f:aa:1b:a4:55:09:
                    b3:75:b1:68:de:5c:1a:75:12:fb:65:4a:31:c9:f3:
                    34:93:b5:eb:1b:93:01:77:e2:ba:27:7c:62:9c:65:
                    e7:49:37:1d:97:40:44:c0:f8:38:54:52:8c:69:3d:
                    b5:d6:d5:90:16:45:83:a4:16:49:5e:cc:8d:da:dd:
                    1a:22:0d:26:f6:ef:b0:b4:8c:5b:8c:b4:bf:7d:cc:
                    48:98:a6:db:7d:78:cc:3d:5e:66:69:ca:c5:74:95:
                    e3:21:84:6c:e1:87:b1:08:b4:26:24:84:3f:75:7b:
                    fb:ee:36:4d:90:91:82:8d:35:ea:15:8e:95:6f:7c:
                    e8:7b:71:ff:aa:d0:bb:46:b2:35:30:14:03:ba:ac:
                    05:8b
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha256WithRSAEncryption
         64:d1:11:03:64:89:12:29:e8:e8:a5:7c:03:5b:c3:f8:61:56:
         e2:d3:f5:4c:79:4b:e6:19:84:c8:5a:69:57:50:a0:78:0c:57:
         aa:5a:17:88:54:8c:3d:61:1c:f0:30:e6:41:31:e6:52:5c:d2:
         84:f2:dd:da:a2:f4:42:7b:a0:c3:c7:80:3a:32:ab:10:15:c7:
         f5:e1:7d:7f:68:1a:89:35:c8:71:10:c0:03:5b:d7:ce:60:d9:
         55:e7:44:15:e2:e4:7e:db:65:5b:34:1b:fe:2b:1f:c7:b1:e5:
         2a:e7:28:05:1b:02:81:92:8b:b7:3e:28:78:20:68:e4:68:ac:
         e5:a2:21:e8:31:de:59:64:9b:c8:6a:16:9a:43:9c:52:0a:cf:
         2d:c2:91:bf:9b:49:64:37:a7:00:60:28:e9:38:ae:35:d3:c6:
         b6:6e:fc:f3:81:cc:a2:f4:2e:50:80:d8:27:cf:f1:3d:4d:19:
         e9:a1:c8:61:8f:b6:28:c5:93:93:75:94:c3:f3:6b:d2:48:8f:
         8b:3e:53:56:76:ab:fc:a9:9c:be:17:59:b4:db:c5:9c:96:6d:
         49:3e:98:5a:d3:c8:03:2e:03:47:2c:1b:84:ee:b0:2f:ae:43:
         e9:49:42:4f:79:01:04:99:4a:8a:78:27:f8:f9:61:8d:73:47:
         49:75:58:d3

本文记录了,如何使用 OpenSSL 实用程序生成自签名 SSL 证书。 我们现在可以配置 Apache 或 Nginx 网络服务器以使用它并保护网络服务器和客户端之间的通信。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论