CRT 文件不包含私钥

CRT file does not contain a privatekey

我正在准备在私人局域网上演示一套应用程序(除了所涉及的机器外,没有连接到任何东西)。没有 DNS,因此所有 URL 都基于 IP 地址。

由于对 ssl 证书进行了验证,该证书不能是自签名证书。因此,我将以下命令与 openssl(对于 windows)一起使用来创建 CA 和派生的 crt。几年前我已经成功地做到了这一点,我想我以前 运行 遇到过这个问题,但我不记得我是如何解决它的。我也找不到另一个 post 解决问题或提醒我解决方案是什么。

我正在使用以下命令:

openssl genrsa -des3 -out myCA.key 2048
openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem
openssl genrsa -out derived.key 2048
openssl req -new -key derived.key -out derived.csr
openssl x509 -req -in derived.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out derived.crt -days 1825 -sha256 -extfile derived.ext


[derived.ext file contents]
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = %%DOMAIN%%

CA 证书(myCA.PEM 文件] 可以很好地安装到受信任的根文件夹中。derived.crt 可以很好地安装到个人存储中,并通过 CA 进行正确验证。但是,derived.crt 不显示私钥,不能用于 SSL。谁能告诉我我错了或遗漏了哪一步?

我好像终于解决了这个问题。显然 .crt 文件不能包含私钥。使用以下命令,我将 .crt 和密钥合并到一个 .pfx 文件中,该文件已导入并现在显示私钥:

openssl pkcs12 -export -in derived.crt -inkey derived.key -out derived.pfx