openssl 天生证书 windows导入证书

[复制链接]
发表于 2025-11-5 20:19:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
低级代码游戏的专栏先容与文章目次-CSDN博客
我的github:codetoys,全部代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。
这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上利用。
源码指引:github源码指引_低级代码游戏的博客-CSDN博客
注意本文大概无法天生v3格式的证书,怎样天生v3格式请看:openssl 正确天生v3带SAN的证书-CSDN博客

目次
证书和私钥
CA证书和私钥
须要谁的CA证书
单向认证和双向认证
天生CA、密钥、证书的全套操纵
去掉私钥暗码
导入到windows证书管理
为什么导入乐成却无法利用(双向认证)
天生pfx证书(带私钥)
导入CA证书
欣赏器选择证书

        大部分环境下我们须要用到CA证书(和私钥)、服务器证书(和私钥)、客户端证书(和私钥),偶尔间一些人不是太明白这几个东西,轻微表明一下。
证书和私钥

        起首须要知道公开密钥算法的奥妙之处:一对密钥,相互解密。证书就是盖了公章的公钥,可以发布给全天下,私钥你本身藏好。
CA证书和私钥

        相称于公安部,CA署名的证书就相称于公安部盖章的身份证,是可信的。CA的证书会由操纵体系预置,作为信托体系的根本。
        在windows的证书管理中,这部分叫做“受信托的根证书颁发机构”。在openssl调用中,这一样平常由CA证书参数指定,是一个文件或一个目次位置,内里放置了全部信托的根证书。
        如果CA是我们本身创建的,我们会拥有对应的私钥,以便签发服务器证书和客户端证书(以及其他CA所能做的),如果CA不是我们本身创建的,显然,我们不大概拥有CA的私钥。
须要谁的CA证书

        通讯时须要确认对方的身份,对方提供的证书是否可信?终极是判定对方的证书签发者的CA证书是否可信(本身的证书的签发者本身固然是信托的,不须要验证),以是,服务器调用时须要的CA证书是客户端的,客户端须要的CA证书是服务器的,为了简单起见,我们一样平常用服务器的CA证书签发客户端证书给客户端用,如许就没有区别了。
        严酷地讲,服务器和客户端证书都应该是从公开的可信的CA那边申请的,而不是我们本身创建的(就好比我们本身创建了一个公安部印制身份证,这可严厉犯法了)。我们签发的证书在互联网上是不会被承认的,但是如果我们的客户是特定的客户群,他们可以手工信托我们的CA,那么自建CA是可以的,毕竟上,一样平常企业服务都是如许做的。
单向认证和双向认证

        单向认证指的是服务器不验证客户端证书、仅仅须要客户端验证服务器的证书(服务器和客户端的设置是独立的,服务器上的设置一样平常叫做“不验证”),双向认证指的是服务器也要验证客户端的证书(服务器上的设置一样平常叫做“peer to peer”)。
        由于管理客户端证书很贫困,一样平常我们就用单向认证,只须要客户端承认服务器证书的签发CA就可以了,能起到传输加密的效果,防偷听。
天生CA、密钥、证书的全套操纵

        直接实行即可天生全套:
  1. #创建CA证书私钥
  2. openssl genrsa -aes256 -out ca.key 2048
  3. #请求证书
  4. openssl req -new -sha256 -key ca.key -out ca.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=CA/[email protected]"
  5. #自签署证书
  6. openssl x509 -req -days 36500 -sha256 -extensions v3_ca -signkey ca.key -in ca.csr -out ca.cer
  7. #创建服务器私钥
  8. openssl genrsa -aes256 -out server.key 2048
  9. #请求证书
  10. openssl req -new -sha256 -key server.key -out server.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=SERVER/[email protected]"
  11. #使用CA证书签署服务器证书
  12. openssl x509 -req -days 36500 -sha256 -extensions v3_req  -CA  ca.cer -CAkey ca.key  -CAserial ca.srl  -CAcreateserial -in server.csr -out server.cer
  13. #生成客户端私钥
  14. openssl genrsa -aes256 -out client.key 2048
  15. #申请证书
  16. openssl req -new -sha256 -key client.key  -out client.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=CLIENT/[email protected]"
  17. #使用CA证书签署客户端证书
  18. openssl x509 -req -days 36500 -sha256 -extensions v3_req  -CA  ca.cer -CAkey ca.key  -CAserial ca.srl  -CAcreateserial -in client.csr -out client.cer
复制代码
去掉私钥暗码

        密钥名称须要更换:
  1. #去掉私钥密码
  2. openssl rsa -in password.key -out nopassword.key
复制代码
导入到windows证书管理

为什么导入乐成却无法利用(双向认证)

        双向认证须要客户端的证书和私钥(私钥不会传输给服务器),直接导入.cer证书是没用的,由于.cer只有证书没有私钥,单独导入.key格式不辨认,归并为.pem也不可,照旧只认证书不认私钥。
        在证书管理检察证书,正确的包罗私钥的证书如下:

        如果没有私钥就没有红框内的内容。 
天生pfx证书(带私钥)

  1. #生成用于windows的pfx证书(pem格式无法导入私钥)
  2. openssl pkcs12 -export -out client.pfx -inkey client.key -in client.cer
复制代码
        导入pfx格式就没标题了。
导入CA证书

        如果提示证书无法验证,那是由于根证书不受信托,将ca.cer导入到“受信托的根证书颁发机构”就可以了。由于不须要利用CA证书签发新证书,以是不须要CA的私钥文件。
欣赏器选择证书

        服务器要求双向认证时欣赏器会提示选择证书:

        如果证书没有私钥,是不会表现在这里的。

(这里是文档竣事) 
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表