这两种OpenSSL生成方法的区别

发布于 2024-12-10 16:07:52 字数 691 浏览 0 评论 0原文

我正在尝试创建自己的根 CA。

这是生成自签名根密钥/证书的一种方法。

openssl req -x509 -nodes -newkey rsa:2048 -subj /CN=$1/countryName=UK/stateOrProvinceName=UK/organizationName=Me -keyout $1.key.pem -out $1.cert.pem

这是另一个。

openssl genrsa -des3 -out $1.key.pem 2048
openssl req -new -subj /CN=$1/countryName=UK/stateOrProvinceName=UK/organizationName=Me -key $1.key.pem -out $1.csr
openssl x509 -req -days 36500 -in $1.csr -signkey $1.key.pem -out $1.crt.pem

如果我使用第一个证书创建客户端和服务器连接(使用 QSslSocket),则连接正常。问题是证书上的日期是 1975 年,我不能用它来签署任何其他证书。

我构造了第二种方法来生成具有无效日期的根证书,但 ssl 套接字连接失败,出现“未知”错误,并且没有其他线索。我检查了客户端和服务器上使用的证书是否正确。

我做错了什么?谢谢。

I'm trying to create my own root CA.

Here's one way of generating a self-signed root key/certificate.

openssl req -x509 -nodes -newkey rsa:2048 -subj /CN=$1/countryName=UK/stateOrProvinceName=UK/organizationName=Me -keyout $1.key.pem -out $1.cert.pem

And here's another.

openssl genrsa -des3 -out $1.key.pem 2048
openssl req -new -subj /CN=$1/countryName=UK/stateOrProvinceName=UK/organizationName=Me -key $1.key.pem -out $1.csr
openssl x509 -req -days 36500 -in $1.csr -signkey $1.key.pem -out $1.crt.pem

If I use the first certificate to create a client and server connection (using QSslSocket) then the connection is made OK. Trouble is the date on the certificate is 1975 and I can't use it to sign any others.

I constructed the second method to generate a root certificate with a vaid date, but the ssl socket connection fails with "unknown" error and no other clues. I checked that the right certificate is being used on both the client and server.

What am I doing wrong? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

弄潮 2024-12-17 16:07:52

如果您使用 -days 36500,则时间回绕至 1975 年:

    Validity
        Not Before: Oct 18 11:57:31 2011 GMT
        Not After : Aug 18 05:29:15 1975 GMT

使用较小的 -days 值。例如:

openssl req -x509 -days 3000 -nodes -newkey rsa:2048 -subj /CN=xx/countryName=UK/stateOrProvinceName=UK/organizationName=Me -keyout xx.key.pem -text -out xx.cert.pem

那么你应该得到有效日期:

    Validity
        Not Before: Oct 18 12:01:17 2011 GMT
        Not After : Jan  4 12:01:17 2020 GMT

If you use -days 36500, then the time wraps to year 1975:

    Validity
        Not Before: Oct 18 11:57:31 2011 GMT
        Not After : Aug 18 05:29:15 1975 GMT

Use smaller -days value. For example:

openssl req -x509 -days 3000 -nodes -newkey rsa:2048 -subj /CN=xx/countryName=UK/stateOrProvinceName=UK/organizationName=Me -keyout xx.key.pem -text -out xx.cert.pem

Then you should get valid day:

    Validity
        Not Before: Oct 18 12:01:17 2011 GMT
        Not After : Jan  4 12:01:17 2020 GMT
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文