如何验证SSL证书和私钥对的完整性

如何验证SSL证书和私钥对的完整性?本文将从验证私钥的完整性、验证私钥和公钥匹配的模数、使用证书中的公钥成功执行加密并使用私钥解密、确认使用私钥签名的文件的完整性四个方面来分析。

1、使用 OpenSSL确认私钥的完整性

openssl rsa -in [key-file.key] -check -noout

不符合完整性的私钥示例:

不符合完整性的私钥示例

可能因篡改/伪造密钥而收到的其他一些错误:

RSA 密钥错误:p 不是素数

RSA 密钥错误:n 不等于 pq

RSA 密钥错误:de 不等于 1

RSA 密钥错误:dmp1 与 d 不一致

RSA 密钥错误:iqmp 不是 q 的倒数

如果您收到上述任何错误,则您的私钥已被操纵,可能无法与您的公钥一起使用。考虑创建一个新的私钥并请求一个替换证书。

满足完整性的私钥示例:

满足完整性的私钥示例

2、确认与私钥和SSL证书密钥对的模值匹配

查看证书模数:

openssl x509 -noout -modulus -in [certificate-file.cer]

查看私钥模数:

openssl rsa -noout -modulus -in [key-file.key]

注意: 私钥和证书的模数必须完全匹配。

3、使用证书中的公钥执行加密并使用私钥执行解密

1)从证书中获取公钥

openssl x509 -in [certificate-file.cer] -noout -pubkey > certificatefile.pub.cer

2)使用公钥加密 test.txt 文件内容

创建一个名为 test.txt 的新文件,其内容为“ message test ”。执行以下命令将加密消息创建到 cipher.txt 文件

openssl rsautl -encrypt -in test.txt -pubin -inkey certificatefile.pub.cer -out cipher.txt

3)使用私钥从 cipher.txt 解密

执行以下命令来解密 cipher.txt 内容

openssl rsautl -decrypt -in cipher.txt -inkey [key-file.key]

确认您能够将 cipher.txt 文件内容解密到终端。

确保终端的输出与 test.txt 文件中的内容匹配。

如果内容不匹配,则私钥已被操纵 ,可能无法与您的公钥一起使用。考虑创建一个新的私钥并请求一个替换证书。

成功解密消息的示例输出:

成功解密消息的示例输出

4、确认使用私钥签名的文件的完整性

执行以下命令以使用您的私钥对 test.sig 和 test.txt 文件进行签名

openssl dgst -sha256 -sign [key-file.key] -out test.sig test.txt

使用从步骤1中提取的公钥验证签名文件。从证书中获取公钥。

openssl dgst -sha256 -verify certificatefile.pub.cer -signature test.sig test.txt

符合完整性的示例:

符合完整性的示例

标签:

SSL证书品牌

相关文章

LAYOUT

SAMPLE COLOR

Please read our documentation file to know how to change colors as you want

BACKGROUND COLOR

BACKGROUND TEXTURE

// //