如何编码CSR?

时间:2018-01-28 17:24:14

标签: ssl x509 csr

我正在学习TLS协议,我不喜欢片刻。 CSR创造的时刻。为什么编码?它使用什么编码?最大的问题是"为什么创建CSR命令需要私钥?"这不是安全漏洞吗?

典型的命令是:

openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privatekey.key

其中" CSR.csr"是CSR请求和" privatekey.key"是我的私钥。

我在谷歌找到的所有内容都是"它是出于实际原因而制作的#34;。什么原因? 我非常怀疑我的PUBLIC密钥发布请求需要我的PRIVATE密钥用于无用的CSR编码,它只包含我的数据和公钥,并且每个人都可以解码。这太可疑了。我认为这种破坏是为了证书颁发机构以某种方式在解码期间获得私钥而不是提供给一些感兴趣的人。

1 个答案:

答案 0 :(得分:2)

  

为什么要编码?

好吧,它是根据公钥加密标准(PKCS)编码的。对于CSR,可以使用两个标准:PKCS#10(单个请求)或封装PKCS#7,其中包含嵌入式PKCS#10请求和附加信息(例如,外部签名,续订证书)。 X.509标准系列使用ASN.1 DER(区分编码规则)编码将结构转换为字节流。编码仅用于表示层,易于操作和在线上操作。

  

为什么CSR创建命令需要私钥

私钥不包含在请求中,它用于对请求进行数字签名。此步骤对于CA来说是必要的,以确保在CSR创建和提交之间不会篡改/修改请求。所以这不是安全漏洞。请求中仅包含公钥。从公钥推断出私钥几乎是不可能的。