以下是此命令每个部分的作用的细分:
- -openssl:这是用于创建和管理 OpenSSL 证书、密钥和其他文件的基本命令行工具。
- -req:此子命令指定我们要使用X.509证书签名请求 (CSR) 管理。“X.509”是 SSL 和 TLS对其密钥和证书管理所遵循的公钥基础设施标准。我们想创建一个新的 X.509 证书,所以我们使用这个子命令。
- -x509:这通过告诉实用程序我们要制作自签名证书而不是像通常发生的那样生成证书签名请求来进一步修改前一个子命令。
- -nodes:这告诉 OpenSSL 跳过使用密码保护我们的证书的选项。当服务器启动时,我们需要 Nginx 能够在没有用户干预的情况下读取文件。密码可以防止这种情况发生,因为我们必须在每次重新启动后输入它。
- -days 365:此选项设置证书被视为有效的时间长度。我们在这里设置了一年。
- -newkey rsa:2048:这指定我们要同时生成新证书和新密钥。我们没有在上一步中创建签署证书所需的密钥,因此我们需要将其与证书一起创建。该rsa:2048部分告诉它制作一个2048
位长的 RSA 密钥。- -keyout:这一行告诉 OpenSSL 在哪里放置我们正在创建的生成的私钥文件。
- -out:这告诉 OpenSSL 在哪里放置我们正在创建的证书。
- -sha1:指定一种单向加密算法,这里选的是sha1.
命令执行后,系统会询问您一些有关服务器的问题,以便将信息正确嵌入到证书中。
最重要的一行是请求Common Name (e.g. server FQDN or YOUR name).
需要输入与您的服务器相关联的域名。
由于我们是自签名证书做漏洞复现测