作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 OpenSSL。 openSSL的所有引用资料都集中在以下两个创建CSR的命令;一个要求您输入一个已经存在的私钥(并派生公钥???),第二个将创建一个新的 key 对。我想使用我的公钥而不是创建新的公钥。
创建 CSR 和私钥:
openssl req -newkey rsa:2048 -keyout my.key -out my.csr
从现有私钥创建 CSR:
openssl req -key my.key -out my.csr
对于第一个选项,我不明白为什么您需要私钥作为命令中的参数。我看到很多网站都说CSR是加密的,但事实似乎并非如此。如果将 CSR 放入 CSR 解码器(即 http://www.sslshopper.com/csr-decoder.html ),则可以解析它;因此我唯一的结论是它只是编码而不是加密。
为什么这些命令中要输入私钥?私钥是如何使用的?如果它正在加密某些东西,那么它加密的是什么?
如果没有使用,有人可以告诉我如何仅使用我的 key 对中的公钥创建 CSR 吗?
提前致谢
最佳答案
CSR 使用私钥进行签名,以防止在传输到 CA 的过程中被篡改。因此,您需要私钥来创建一个。
可以创建没有签名的 CSR,但这种结构并不常见,而且 openssl 二进制文件本身没有创建它们的规定。
当使用您首先列出的 openssl 命令生成新的 CSR+ key 对时,它不会加密 CSR(因为这不是理想的行为。CSR 是您提交的公共(public)数据,而不是 secret 信息),而是加密私有(private)数据关键。
关于openssl - 如何从 key 对的现有公钥创建证书签名请求 (CSR)(假设私钥位于其他地方的安全位置)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14617306/
我是一名优秀的程序员,十分优秀!