精华内容
下载资源
问答
  • 本工具包含windows版本编译好的gmssl.exe(Linux版本需自己编译,命令行是通用的),以及方便签发证书的bat文件,gmssl命令行详细解释。可以用来生成ca证书,并且用ca证书签发用户证书。
  • 该资源是原生无毒,也没有任何插件,请放心下载,谢谢,压缩包无密码,直接解压即可,如不放心可以用任何杀毒工具进行扫描
  • CA证书:解决php curl: (60) SSL certificate problem: unable to get local issuer certificate等问题
  • 本资源是自建的一个CA证书和私钥,可以用于测试https网络安全测试,在服务器端使用此证书配置,终端访问可以实现https访问,其中证书和密钥都是以文件的形式存储,证书的有效期是两年。
  • composer安装需要php5.6以上的版本支持,如果安装遇到opensll的错误,把证书放入sll文件夹中,并改变php.ini中openssl.cafil的值变成证书的路径即可
  • 利用openssl生成CA证书的方法及证书,根据文档可以自己生成证书。
  • CA证书

    万次阅读 多人点赞 2018-01-30 19:02:59
    1. CA证书理解?CA证书的作用?CA证书顾名思义就是由CA(Certification Authority)机构发布的数字证书。要对CA证书完全理解及其作用,首先要理解SSL。SSL(security sockets layer,安全套接层)是为网络通信提供...

    1. CA证书理解?CA证书的作用?

    CA证书顾名思义就是由CA(Certification Authority)机构发布的数字证书。要对CA证书完全理解及其作用,首先要理解SSL。SSL(security sockets layer,安全套接层)是为网络通信提供安全及数据完整性的一种安全协议。SSL3.0版本以后又被称为TLS。SSL位于TCP与各应用层之间,是操作系统向外提供的API。SSL如何保证网络通信的安全和数据的完整性呢?就是采用了两种手段:身份认证和数据加密。首先身份认证就需要用到CA证书了。先了解CA证书具体包括哪些内容:

    颁发者
    使用者
    版本
    签名算法
    签名哈希算法
    使用者
    公钥
    指纹
    指纹算法
    ……
    上述中颁发者、使用者、版本等内容好理解,颁发者就是CA机构,下面会讲到。对于签名算法、签名哈希算法的理解,首先要先理解签名是什么东东?联系到实际情况,当我们向某机构提供报告时,往往在报告最后加上个人的名字,以表示该报告是我本人的。签名在网络通讯中的应用称为数字签名,当服务器向客户端发送信息时,会将报文生成报文摘要,同时对报文摘要进行hash计算,得到hash值,然后对hash值进行加密,然后将加密的hash值放置在报文后面,这个加密后的hash值就称为签名。服务器将报文、签名和数字证书一同发送给客户端。客户端收到这些信息后,会首先验证签名,利用签名算法对签名进行解密,得到报文摘要的hash值,然后将得到的报文生成报文摘要并利用签名hash算法生成新的hash值,通过对比这两个hash值是否一致,就能判断信息是否完整,是否是由真正的服务器发送的。可知签名有两个作用确认消息发送方可靠,确认消息完整准确。

    上面提到了hash值的加密,我们还需要理解SSL的加密机制,在使用SSL的网络通讯过程中,消息在请求和响应中都是加密传送的。首先要知道加密算法分为两种:对称加密和非对称加密。对称加密就是发送双发使用相同的密钥对消息进行加解密,常见的对称加密为DES、3DES,AES等。非对称加密是发送双方各自拥有一对公钥私钥,其中公钥是公开的,私钥是保密的。当发送方向接收方发送消息时,发送方利用接收方的公钥对消息进行加密,接收方收到消息后,利用自己的私钥解密就能得到消息的明文。其中非对称加密方法有RSA、Elgamal、ECC等。此处只是简单了说明了这两种加密机制的过程,若要深入理解它们的原理、过程请搜索相应的资料,很容易搜索到。

    好了,了解了签名原理和两种加密机制,我们继续理解网络通讯中是怎么利用CA证书进行身份认证的?客户端与服务端需要经过一个握手的过程才能完成身份认证,建立一个安全的连接。握手的过程如下:

    1. 客户端访问服务器(比如:https://www.12306.cn),发送ssl版本、客户端支持的加密算法、随机数等消息。
    2. 服务器向客户端发送ssl版本、随机数、加密算法、证书(证书出现了)等消息。
    3. 客户端收到消息后,判断证书是否可信(如何判断可信,看下文介绍),若可信,则继续通信,发送消息包括:向服务器发送一个随机数,从证书中获取服务器端的公钥,对随机数加密;编码改变通知,表示随后信息都将使用双方协定的加密方法和密钥发送;客户端握手结束通知。
    4. 服务器端对数据解密得到随机数,发送消息:编码改变通知,表示随后信息都将使用双方协定的加密方法和密钥发送。

    以上就是整个握手的过程,在第三步实际上就完成了身份的认证,第四、五步是进行密钥的商定,因为非对称加密算法对数据加密非常慢,效率低,而对称加密加密效率很高,因此在整个握手过程要生成一个对称加密密钥,然后数据传输中使用对称加密算法对数据加密。可知ssl整个握手过程包括身份认证、密钥商定。上述讲述ssl的握手过程比较简单,想要深入理解ssl原理,下面这篇博文讲的不错:
    https://segmentfault.com/a/1190000002554673
    一定要看上面的博文,否则无法彻底理解证书使用的原理。

    2.客户端是如何验证CA证书是可信任的?

    一般来说,现在公共网站数据传输都是使用SSL,即通过https协议访问。Https就是http加SSL。在上面SSL握手过程中,客户端是如何验证服务器发送的CA证书呢?我们以12306网站为例进行说明,此时,客户端就是浏览器,如果我们是第一次访问12306网站,使用https://www.12306.cn地址访问,返回如下结果:
    这里写图片描述

    提示此网站的安全证书有问题,说明证书不可信,如果我们忽略证书不可信,继续访问网站,打开12306网页,在首页提供一个根证书的下载,见下页面:

    这里写图片描述

    下载根证书,安装完毕,再次访问12036网站,就不会提示网站的安全证书有问题了。这是什么机制呢?

    打开【工具】菜单(360浏览器为例),然后选择【内容】选项卡,点击【证书】按钮,打开证书窗口,选择【中级证书颁发机构】,会看到已经安装的12306的证书:

    这里写图片描述

    只要安装上12306证书,就说明证书是可信的。使用https协议访问时,服务器发送证书向浏览器时,首先查找该证书是否已在信任列表中,然后对证书进行校验,校验成功,那么就证明证书是可信的。另外,证书的认证是安装证书链执行的,证书链的意思是有一个证书机构A,A生成证书B,B也可以生成证书C,比如在证书窗口中有一个360证书,见下图:

    这里写图片描述

    360证书的颁发者是certification authority of wosign,在【受信任的根证书颁发机构】中,我们会看到该证书:见下图,

    这里写图片描述

    也就是说,certification authority of wosign生成360证书,360可以生成其它的证书。A证书或者certification authority of wosign证书在整个证书链上就被称为根证书,证书验证的机制是只要根证书是受信任的,那么它的子证书都是可信的。比如说,我们使用https协议访问了需要360证书的网站,即使我们不安装360证书,那么网站也不会提示证书不安全,因为,生成360证书的根证书certification authority of wosign证书,在受信任的证书列表中。如果一个证书的根证书是不可信的,那么这个证书肯定也是不可信任的。

    由以上可知,根证书在证书验证中极其重要,而且,根证书是无条件信任的,只要我们将根证书安装上,就说明我们对根证书是信任的。比如我们安装12306的根证书,是出于我们对国家的信任,对网站的信任,我们才放心安装这个根证书。对于一些不安全的网站的证书,一定要慎重安装。

    另外需要知道的是,【受信任的根证书颁发机构】中的证书是windows预先安装的一些证书,都是国际上很有权威的证书机构,他们证书的生成都有很严格的流程,因此他们的证书被认为是安全,就像我们相信银行是安全,所以把钱存入到银行。

    3.有哪些CA机构?

    世界上较早的数字认证中心是美国的verisign公司,在windows的证书窗口中可以看到好多verisign公司生成的证书,见下图:

    这里写图片描述

    另外还有加拿大的ENTRUST公司,也是很著名的证书机构。中国的安全认证体系分为金融CA和非金融CA。在金融CA方面,根证书由中国人民银行管理,在非金融CA方面,由中国电信负责。中国CA又可分为行业性CA和区域性CA,行业性CA中影响最大是中国金融认证中心和中国电信认证中国;区域性CA主要是以政府为背景,以企业机制运行,其中广东CA中心和上海CA中影响最大。

    4.自签名证书的如何生成、安装?

    有时候,我们在内部系统传输数据需要使用SSL协议,对数据加密,但是我们又不想花钱去申请CA,这个时候可以使用自签名CA,实现数据加密传输的功能。首先要明确一点就是自签名证书是不安全的,存在安全漏洞,具体看下面的博文介绍:

    为什么”自签名SSL证书”不安全?
    https://www.wosign.com/FAQ/selfsigned_SSL_insecure.htm

    自签名证书使用jdk中的keytool生成即可,看似神秘,但实际上比较简单,见下博文:

    如何利用keytool工具生成数字证书
    https://jingyan.baidu.com/article/b0b63dbfe18eff4a483070f4.html

    自签名证书的安装也很简单,见下博文:

    添加自签发的 SSL 证书为受信任的根证书
    https://cnzhx.net/blog/self-signed-certificate-as-trusted-root-ca-in-windows/

    在java编程中,使用socket网络编程,实现SSL协议,对服务器的证书需要导入到客户端的秘钥库中,这样才能完成自动认证,具体实现见下博文:

    JAVA SSL SOCKET通信服务器端客户端证书双向认证
    http://blog.csdn.net/matt8/article/details/45071815

    展开全文
  • java生成CA证书

    2014-05-18 15:29:40
    网上博客里面的通常的版本,对其进行了些更改并引入了jre6的rt.jar(貌似jre7的不行)使其能够运行
  • CA证书认证

    2013-03-21 11:48:31
    CA证书 RSA KEYTOOL ANDROID
  • CA证书接口用法

    2013-09-08 15:34:02
    CA证书接口用法 CA证书怎么与代码结合
  • CA证书制作工具

    热门讨论 2012-11-14 14:05:19
    非常好用的证书制作工具,内含证书制作文档,绝对能帮助你解决制作简单证书的问题。
  • 秒懂Https之CA证书与自签名证书漫谈

    千次阅读 多人点赞 2020-07-25 11:07:39
    ... 客户端与服务端使用非对称加密将一个秘钥,我们记做Key,传递给对方。 那么现在客户端与服务端都知道了这...此时CA就粉墨登场了,其存在的意义就是确保通信的一方可以安全的获取到对方的这个公钥。 我们先介绍几个相关.

    【版权申明】非商业目的注明出处可自由转载
    博文地址:https://blog.csdn.net/ShuSheng0007/article/details/107540565
    出自:shusheng007

    首发于:shusheng007博客

    相关文章:
    数字签名的原理及其应用
    秒懂Https之如何在Android中使用自签名证书
    秒懂https之如何在SpringBoot2中使用自签名证书

    概述

    最近抽时间让APP支持了https的功能,所以总结一下相关的知识,以飨读者。

    预备知识:必须对https有基本的理解

    Https

    HTTPS: Hypertext Transfer Protocol Secure 超文本安全传输协议,太普遍了,列出关键点,不做过多解释。

    1. 客户端与服务端使用非对称加密将一个秘钥传递给对方。
    2. 双方使用此秘钥通过对称加密通信。

    证书

    我们知道非对称加密需要一对秘钥:公钥和私钥。当一方拥有了此秘钥对后,最头疼的事情就是如何将公钥安全的传递给对方。因为通讯过程是不安全的,我们不知道公钥在传递过程中会发生什么(中间人攻击)。此时CA就粉墨登场了,其存在的意义就是确保通信的一方可以安全的获取到对方的公钥。

    我们先介绍几个相关名词,然后简单谈一谈CA是如何赚这份钱的。

    CA: certificate authority , 负责颁发CA证书的机构和组织,都是一些欧美邪恶组织,轻易不让别人加入。
    CA证书:CA机构颁发给其他人的证书。主要包含如下信息

    • 申请者公钥
    • 申请者的信息
    • 颁发者(CA)的信息
    • 以上信息的数字签名
      数字签名生成规则:先使用摘要算法,例如SHA256,将以上信息生成摘要,然后CA使用自己的私钥对此摘要加密

    那CA到底是如何赚这份钱的呢? 简单来说就是CA帮你做担保,担保那个公钥确实是和你通信的那一方的。那他是怎做到的呢?且听我娓娓道来

    第一步: CA ,就是那些欧美邪恶组织,先找操作系统厂商以及浏览器厂商,例如微软、Google、Apple等私通苟且,大家关起门来讨价还价一番,最后让这些厂商在自己的操作系统或者浏览器中内置CA的根证书(以及二级证书)。大家约定好,只有能通过这些证书验证的其他证书才是合法的,否则都他娘的不许放行,或者吓唬用户:“系统检测到你访问的地址是不安全的,继续访问有可能被爆菊花…”。

    通过这一步就达到了如下效果:你先信任了A,然后通过A去校验未知的B、C、D…

    第二步:CA通过这一顿骚操作,就逼得用户需要向CA申请证书了。因为要使用HTTPS就需要公钥私钥对,但是如果你自己产生一对的话,当用户使用浏览器访问你的服务器时,你把公钥传给浏览器,那些内置的CA根证书就去校验你这个公钥,然后大惊失色的告诉用户:“不好!你访问的网站可能是个恶意网站,你有可能被爆菊花…” 经此一吓,大部分用户也就不用你的服务了,长此以往,公司就的解散,到时候下海去做鸭,就真的要被爆菊花了…那首歌怎么唱来着:“一步踏错终身错,下海伴舞为了生活…”

    有的同学又要反驳了:你又瞎哔哔,我上12306官网去买火车票时,浏览器就会提示我有可能被爆菊花,但是也没见人家倒闭啊… 你是12306吗?你家卖火车票吗?过年回家的时候别说提示你爆菊花,就是提示你有可能吃屎,你也得点进去抢票啊… 这就是垄断的力量!话说强如12306,最近好像也申请了CA证书了。

    王二狗不想去下海,所以鼓动其公司《圣女果科技》向CA申请CA证书,其需要如下步骤
    a: 向CA提供公司的公钥,公司信息,域名等信息
    b: CA调查并确认这些信息都是真实的
    c: 圣女果交钱给CA
    d: CA向圣女果颁发证书

    让我们看一下这些CA根证书的样子吧:

    在Chrome中的某个CA证书
    在这里插入图片描述
    Android中的CA证书列表
    在这里插入图片描述

    有了CA证书,公司就可以正常开展业务了。下面看一下当一个用户访问《圣女果科技》官网时证书的验证流程

    第三步: 验证证书流程
    设客户端为:C,服务端为:S

    • C以https方式访问S

    • S返回其证书SngCer给C

    • C使用内置CA根证书验证SngCer。 验证过程如下:

      SngCer中明文信息使用相同摘要算法生成摘要得到 digest1;
      使用CA根证书中的CA的公钥SngCer中的数字签名解密得到digest2;
      对比digest1与digest2,如果相同则说明SngCer没有被篡改过,而且是CA颁发出去的,可以放心使用其明文信息。

    • 验证 SngCer中的那些明文信息,例如证书是否过期,域名是否正确,证书是否被吊销等

    通过以上介绍我们发现最开始困扰我们如何传递公钥的问题就这样被解决了:用户无条件信任一个预先安装的公钥

    理解了CA证书,自签名证书就比较好理解了。就是我们自己生成一对公钥私钥,自己用。如果是浏览器访问,就要忍受其安全提示。如果是运行在Android或者IOS设备中的App呢,访问就会失败。

    那如何才能不失败呢?浏览器就比较尴尬了,因为浏览器都是别人开发的,你总不能把你的自签名证书导入我电脑上的浏览器中吧。但是在我们自己开发的App中还是可以使用的,写程序完成证书验证过程就好了。

    自签名证书

    要处理HTTPS相关的问题可以使用大名鼎鼎的 OpenSSL,但是我没怎么用过。其实JDK自带了一个工具keytool也可以完成。

    如果你配置了java的环境变量,可以直接在命令行窗口输入如下命令查看此工具的信息

    keytool --help
    密钥和证书管理工具
    
    命令:
    
     -certreq            生成证书请求
     -changealias        更改条目的别名
     -delete             删除条目
     -exportcert         导出证书
     -genkeypair         生成密钥对
     -genseckey          生成密钥
     -gencert            根据证书请求生成证书
     -importcert         导入证书或证书链
     -importpass         导入口令
     -importkeystore     从其他密钥库导入一个或所有条目
     -keypasswd          更改条目的密钥口令
     -list               列出密钥库中的条目
     -printcert          打印证书内容
     -printcertreq       打印证书请求的内容
     -printcrl           打印 CRL 文件的内容
     -storepasswd        更改密钥库的存储口令
    
    使用 "keytool -command_name -help" 获取 command_name 的用法
    

    使用keytool可以生成keystore, 其是存放 “加密密钥、X.509证书链和受信任证书” 等的数据库。其有多种格式,我们这里使用行业标准格式PKCS12

    生成PKCS12格式的KeyStore

    keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore keystore.p12 -validity 3650 -ext san=ip:192.168.xx.xx -storepass password
    
    • genkeypair: 产生一个密钥对;
    • alias: 产生的keystore的别名;
    • keyalg: 密钥对使用的加密算法(alg是algorithm 的缩写);
    • keysize: 秘钥长度,此处为2048 bits, 如果需要更安全可以使用 4096 bits;
    • storetype: keystore的类型,此处为PKCS12;
    • keystore: keystore文件名称;
    • validity: 有效期天数,3650表示有效期为10年;
    • storepass: keystore的密码.
    • -ext 额外信息,此处添加了Subject Alternate Name (SAN) san=ip:192.168.31.25 san后面是你的主机名,域名或者IP。
      例如要同时添加域名与IP使用下面的配置:
      san=dns:shusheng007.top,ip:192.168.10.xxx
      

    如果证书中不把域名或者IP放进去的话,客户端请求的时候需要设置不验证主机名,否则证书验证不过。

    执行上面命令后需要你提供一些信息:

    您的名字与姓氏是什么?
      [Unknown]:  shusheng007
    您的组织单位名称是什么?
      [Unknown]:  sng
    您的组织名称是什么?
      [Unknown]:  sng
    您所在的城市或区域名称是什么?
      [Unknown]:  tianjin
    您所在的省/市/自治区名称是什么?
      [Unknown]:  jinan
    该单位的双字母国家/地区代码是什么?
      [Unknown]:  cn
    CN=shusheng007, OU=sng, O=sng, L=tianjin, ST=jinan, C=cn是否正确?
      [否]:  y
    

    输入y后回车,就会在你的目录下生成一个keystore.p12文件,这个文件就是我们的keystore

    查看keystore中的信息

    keystore.p12文件所在目录执行如下命令:

    keytool -list -v -storetype pkcs12 -keystore keystore.p12
    

    出现如下信息,输入生成时候的密码,我们这里是shusheng007,回车即可

    输入密钥库口令:
    
    密钥库类型: PKCS12
    密钥库提供方: SunJSSE
    
    您的密钥库包含 1 个条目
    
    别名: sng
    创建日期: 2020-7-23
    条目类型: PrivateKeyEntry
    证书链长度: 1
    证书[1]:
    所有者: CN=shusheng007, OU=sng, O=sng, L=tianjin, ST=jinan, C=cn
    发布者: CN=shusheng007, OU=sng, O=sng, L=tianjin, ST=jinan, C=cn
    序列号: 1990d91e
    有效期开始日期: Thu Jul 23 21:52:40 CST 2020, 截止日期: Sun Jul 21 21:52:40 CST 2030
    证书指纹:
             MD5: 68:D8:C0:E4:32:35:D0:17:7C:0D:8E:AC:0E:BD:40:3E
             SHA1: 84:3A:10:7E:16:66:E3:FB:94:5B:16:2A:FD:3C:34:B2:1E:8A:8E:DE
             SHA256: FA:29:C9:66:F0:78:8B:3B:17:1A:B1:40:51:C4:32:AB:4A:D5:FC:B3:98:75:D9:51:5E:EB:7E:40:6D:2E:7F:C0
             签名算法名称: SHA256withRSA
             版本: 3
    
    扩展:
    
    #1: ObjectId: 2.5.29.17 Criticality=false
    SubjectAlternativeName [
      IPAddress: 192.168.31.158
    ]
    
    #2: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    0000: 05 3E 67 C8 B8 D8 04 82   FB 71 F0 35 90 F7 E6 F2  .>g......q.5....
    0010: 06 E8 78 1C                                        ..x.
    ]
    ]
    *******************************************
    *******************************************
    

    从keystore到出ssl证书

    当我们要在客户端,例如Android,中使用时需要从keystore中导出ssl证书myCertificate.crt

    keytool -export -keystore keystore.p12 -alias sng -file myCertificate.crt
    

    输入密码后生成ssl证书

    输入密钥库口令:
    存储在文件 <myCertificate.crt> 中的证书
    

    在这里插入图片描述
    只要导出了ssl证书,我们就可以在Android中或者浏览器中使用了,如何使用有机会再说。

    将现有ssl 证书导入到keystore中

    我们前面说过,keystore就是一个容器或者说数据库,所以我们是可以把现有的ssl证书导入其中的。

    keytool -import -alias sng -file myCertificate.crt -keystore keystore.p12 -storepass shusheng007
    

    我们尝试将刚生成的ssl证书导入keystore.p12中,结果失败了,因为库中已经有一个一模一样的了。

    keytool 错误: java.lang.Exception: 证书回复与密钥库中的证书是相同的
    

    总结

    行文到此又该结束了,本文讲述了CA证书的工作原理,以及如何生成自签名证书,相信你又get到不少新技能,注意点赞收藏,用时回看。

    等有时间我会将如何在前(Android)后端(SpringBoot2)中使用自签名证书总结出来,让其他小伙伴少走弯路,点赞超过50就开写,敬请期待!

    参考文章:
    https://www.cnblogs.com/handsomeBoys/p/6556336.html
    https://www.jianshu.com/p/29e0ba31fb8d

    展开全文
  • OpenSSL 生成CA证书及终端用户证书

    千次阅读 2020-08-21 10:50:50
    一、环境 OpenSSL 1.0.2k FireFox 60.0 64位 Chrome 66.0.3359.181 ...二、生成CA证书 1、准备ca配置文件,得到ca.conf $ vim ca.conf 内容如下: [ req ] default_bits = 4096 distinguished_name = re

    一、环境

    • OpenSSL 1.0.2k
    • FireFox 60.0 64位
    • Chrome 66.0.3359.181 (正式版本)(32位)
    • Internet Explorer 11.2248.14393.0
    • Websocketd 0.3.0
    • Nginx 1.12.2

    二、生成CA根证书

    1、准备ca配置文件,得到ca.conf

      $ vim ca.conf

    内容如下:

    [ req ]
    default_bits       = 4096
    distinguished_name = req_distinguished_name
    
    [ req_distinguished_name ]
    countryName                 = Country Name (2 letter code)
    countryName_default         = CN
    stateOrProvinceName         = State or Province Name (full name)
    stateOrProvinceName_default = JiangSu
    localityName                = Locality Name (eg, city)
    localityName_default        = NanJing
    organizationName            = Organization Name (eg, company)
    organizationName_default    = Sheld
    commonName                  = Common Name (e.g. server FQDN or YOUR name)
    commonName_max              = 64
    commonName_default          = Ted CA Test

    2、生成ca秘钥,得到ca.key

      $ openssl genrsa -out ca.key 4096

    3、生成ca证书签发请求,得到ca.csr

      $ openssl req -new -sha256 -out ca.csr -key ca.key -config ca.conf

    配置文件中已经有默认值了,shell交互时一路回车就行。

    4、生成ca根证书,得到ca.crt

      $ openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt

    三、生成服务端证书

    1、配置文件

    准备配置文件,得到server.conf,内容如下:

    [ req ]
    default_bits       = 2048
    distinguished_name = req_distinguished_name
    req_extensions     = req_ext
    
    [ req_distinguished_name ]
    countryName                 = Country Name (2 letter code)
    countryName_default         = CN
    stateOrProvinceName         = State or Province Name (full name)
    stateOrProvinceName_default = JiangSu
    localityName                = Locality Name (eg, city)
    localityName_default        = NanJing
    organizationName            = Organization Name (eg, company)
    organizationName_default    = Sheld
    commonName                  = Common Name (e.g. server FQDN or YOUR name)
    commonName_max              = 64
    commonName_default          = www.ted2018.com
    
    [ req_ext ]
    subjectAltName = @alt_names
    
    [alt_names]
    DNS.1   = www.ted-go.com
    DNS.2   = www.ted2018.com
    IP      = 192.168.93.145

    Chrome 58以后不再使用CN校验地址(就是就是浏览器地址栏URL中的那个地址host)了,而是使用SAN,注意配置里写对,IE 11还是使用CN

    2、服务端密钥

     生成秘钥,得到server.key,命令如下:

      $ openssl genrsa -out server.key 2048

    3、服务端CSR

      $ openssl req -new -sha256 -out server.csr -key server.key -config server.conf

    配置文件中已经有默认值了,shell交互时一路回车就行。

    4、服务端证书

    用CA证书生成终端用户证书,得到server.crt

      $ openssl x509 -req -days 3650 -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt -extensions req_ext -extfile server.conf

    四、验证

    1、配置web服务器

    Web服务器选用nginx,关键配置如下:

    server {
            listen       443 ssl;
            server_name  localhost;
            root    D:\websocketd-0.3.0-windows_amd64;
    
            ssl_certificate      server.crt;
            ssl_certificate_key  server.key;
    
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers  on;
    
            location / {
                index  index.html index.htm;
            }
        }

    把生成好的server.crt和server.key文件放在与 nginx.conf 同级目录下,然后启动nginx。

    2、改hosts

    在 /etc/hosts 文件中添加以下内容:

      127.0.0.1 www.ted2018.com

    3、添加CA根证书

    浏览器右键 ca.crt 安装,安装到“受信任的根证书颁发机构”(不然server.crt还是不受信任的)

    4、Google浏览器验证

    Chrome浏览器访问https://www.ted2018.com

      

      

      

    Google 浏览器无警告,访问成功。

    5、FireFox配置

    火狐浏览器--选项--隐私与安全--证书--查看证书--证书颁发机构--导入,把CA根证书ca.crt导入进来,选中该证书,编辑信任,勾选“此证书可以标识网站”。

      

    FireFox 浏览器访问https://www.ted2018.com

      

    FireFox 浏览器无警告,访问成功。

    6、IE11配置

    IE11访问https://www.ted2018.com

      

    IE11 浏览器无警告,访问成功。

    到此 OpenSSL 生成CA证书及终端用户证书介绍完成。

    展开全文
  • 自签名证书和私有CA证书的制作

    千次阅读 2021-10-23 17:53:54
    自签名证书和私有CA证书的制作 基本概念 证书类型 PEM(privacy-enhanced Electronic Mail):明文格式的,以----BEGING CERTIFICATE ----开头,以 ----END CERTIFICATE ----结尾,中间是经过basee64编码的内容。...



    2021年下半年计算机软件水平考试(软考)报名时间及入口

    2021年下半年成绩查询试题真题及答案

    培训视频教程教材-软考网
    ​​​​​​​

     

    自签名证书和私有CA证书的制作

    基本概念

    证书类型

    • PEM(privacy-enhanced Electronic Mail):明文格式的,以----BEGING CERTIFICATE ----开头,以 ----END CERTIFICATE ----结尾,中间是经过basee64编码的内容。

      • 查看证书信息命令:openssl x509 -noout -text -in some.pem

    • DER:二进制格式证书

      • 查看证书信息命令:openssl x509 -noout -text -inform der -in some.der

    证书后缀名

    • .crt:证书文件,可以是DER编码的,也可以是PEM编码的。

    • .cer:证书文件,可以是DER编码的,也可以是PEM编码的,常见于windows系统。

    • .csr:证书签名请求,一般是生成后发送给CA,然后CA会给你签名并返回证书。

    • .key:公钥或密钥,可以是DER编码的,也可以是PEM编码的

      • 查看DER格式:openssl rsa -inform DER -noout -text -in some.key

      • 查看PEM格式:openssl rsa -inform PEM -noour -text -in some.key

    操作步骤

    自签名证书的制作

    1. 生成服务器私钥

    • openssl genrsa -des3 -out server.key 4096

    1. 生成证书签名请求

    • openssl req -new -key server.key -out server.csr

    • 保证Common name跟你的域名或者IP相同

    1. 对证书签名请求进行签名

    • openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

    1. 生成无需密码的服务器私钥

    • openssl rsa -in server.key -out server.key.insecure

    • mv server.key server.key.secure

    • mv server.key.insecure server.key

    1. 简单的方法一步生成私钥及自签名证书

    • openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout server.key -out server.crt

    私有CA签名证书的制作

    1. 创建CA私钥

    • openssl genrsa -des3 -out ca.key 4096

    • 可选步骤,删除私钥中的密码:openssl rsa -in ca.key -out ca.key

    1. 生成CA的自签名证书

    • openssl req -new -x509 -days 365 -key ca.key -out ca.crt

    • 其实CA证书就是一个自签名证书

    1. 生成服务端私钥

    • openssl genres -des3 -out server 4096

    1. 需要签名的证书(服务端)生成证书签名请求

    • openssl req -new -key server.key -out server.csr

    • 证书签名请求中的Common Name必须区别与CA的证书里面的Common Name

    1. 用CA证书给步骤四中的签名请求进行签名

    • openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt

    查看命令

    • 查看私钥信息

      • openssl rsa -noout -text -in server.key

    • 查看签名请求信息

      • openssl req -noout -text -in server.csr

    • 查看证书信息

      • openssl x509 -noout -text -in server.crt

    • 将crt文件转换为pem

      • openssl x509 -in server.crt -out server.pem -outform PEM

    • 验证一个证书是否是某一个CA签发

      • openssl verify -CAfile ca.crt server.crt

    • 模拟一个ssl客户端访问ssl服务器

      • openssl s_client -connect 192.168.0.1:443 -cert client.crt -key client.key

    展开全文
  • 二 docker安装ca证书

    千次阅读 2019-08-08 23:05:56
    使用idea+docker部署一时爽, 结果服务器由于2375端口被黑, 服务器变成了别人的打工仔, 防止服务器变成别人的挖矿专员,这时候就必须要配置docker的ca证书 官方例子 1、创建ca文件夹,存放CA私钥和公钥 [root@...
  • CA证书理解?CA证书的作用?

    千次阅读 2018-11-29 10:53:00
    CA证书顾名思义就是由CA(Certification Authority)机构发布的数字证书。要对CA证书完全理解及其作用,首先要理解SSL。SSL(security sockets layer,安全套接层)是为网络通信提供安全及数据完整性的一种安全协议...
  • 数字证书是由权威机构CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档。而数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。...
  • 如何获取服务器的 CA 证书

    千次阅读 2020-05-13 16:51:57
    前言 ... 它的主要作用可以分为两种: 其一, 单纯地建立信息安全通道, 来保证数据...本文档根据 CA 证书的来源, 分来两种场景进行了详细介绍. CA 机构签发: 场景描述1 自签 CA: 场景描述2 场景描述1 将最新固件上传到 H
  • 最新CA数字证书

    2019-01-14 18:06:05
    最新CA证书
  • openssl生成CA证书

    万次阅读 2019-08-29 11:17:10
    什么是x509证书链 x509证书一般会用到三类文件,key,csr,crt。 ...crt是CA认证后的证书文件(windows下面的csr,其实是crt),签署人用自己的key给你签署的凭证。 概念 证书类别 根证书 ...
  • CA证书介绍

    千次阅读 2018-12-04 16:16:52
    CA,Catificate Authority,它的作用就是提供证书(即服务器证书,由域名、公司信息、序列号和签名信息组成)加强服务端和客户端之间信息交互的安全性,以及证书运维相关服务。任何个体/组织都可以扮演 CA 的角色,...
  • HTTPS中CA证书的签发及使用过程

    千次阅读 2020-06-24 15:46:40
    HTTPS中CA证书的签发及使用过程 </h1> <div class="clear"></div> <div class="postBody"> 1,HTTPS 简单来讲,HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议...
  • openssl 从内存直接加载CA证书

    千次阅读 2021-10-11 11:13:34
    参考链接 openssl 从内存加载ca证书 - Zzz...y - 博客园 (cnblogs.com) ... poha.mqtt.c 库使用tls连接时,默认是通过文件方式加载证书的。...想要改成从内存直接加载ca证书,将证书硬编码进程序中,防止
  • CA证书概念介绍

    千次阅读 2020-12-14 15:45:22
    CA, (Certificate Authority) CA认证,即电子认证服务, 是指为电子签名相关各方提供...网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA证书(含公钥),用以验证它所签发的证书。 如果用户想得
  • 使用OpenSSL创建生成CA证书、服务器、客户端证书及密钥 目录使用OpenSSL创建生成CA证书、服务器、客户端证书及密钥(一)生成CA证书(二)生成服务器证书(三)生成客户端证书 说明: 对于SSL单向认证: 服务器...
  • Windows CA 证书服务器配置

    千次阅读 2020-10-29 19:47:34
    如果机器没有安装活动目录,在勾选以上‘证书服务’时,将弹出如下窗口,由于我们将要安装的是独立 CA,所以不需要安装活动目录。默认情况下,‘用自定义设置生成密钥对和 CA 证书’没有勾选,勾选之后点击
  • 内部 CA 证书管理

    千次阅读 2020-05-28 09:55:09
    内部 CA 证书管理 生成 CA 证书 # 生成 KEY openssl genrsa -out ca.key 4096 # 生成证书 openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=省/L=市/O=组织/OU=组织单位/CN=常用名(或域名)" \ ...
  • CentOS 7 CA证书服务器搭建

    千次阅读 2020-11-02 14:50:01
    CA认证概述 证书颁发机构(CA, Certificate Authority)即颁发数字...CA证书服务器 192.168.1.10 Apache服务器 192.168.1.20 搭建过程如下 CA证书服务器的配置 [root@server ~]# yum install -y openssl //安装Op
  • 自建 CA 中心并签发 CA 证书

    千次阅读 2018-11-17 10:45:00
    文章目录目录CA 认证原理浅析基本概念PKICA 认证中心(证书签发)X.509 标准证书证书的签发过程自建 CA 签发证书并认证 HTTPS 网站的过程使用 OpenSSL 自建 CA 并签发证书 CA 认证原理浅析 下面给出一个形象的例子来...
  • CA证书,也是根证书,是最顶级的证书,也是CA认证中心与用户建立信任关系的基础,用户的数字证书必须有一个受信任的根证书,用户的数字证书才是有效的。那么,CA数字证书是干嘛用的,有什么作用呢?通过下文来详细...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,315
精华内容 40,126
关键字:

ca证书