证书链

apache 搭建双向证书认证

风流意气都作罢 提交于 2020-03-02 09:36:15
一. CA自签 1.建立 CA 目录结构 mkdir -p ./demoCA/{private,newcerts} touch ./demoCA/index.txt echo 01 > ./demoCA/serial # 生成 CA 的 RSA 密钥对 openssl genrsa -des3 -out ./demoCA/private/cakey.pem 2048 # 生成 CA 证书请求 openssl req -new -x509 -days 3650 -key ./demoCA/private/cakey.pem -out careq.pem #复制一份证书 cp cacert.pem ca.crt 二.生成和签发服务器、客户端证书 #修改openssl配置文件 /etc/pki/tls/openssl.cnf 设置好 dir = /root/ssl/demoCA (生成CA的路径) # 生成服务器的 RSA 密钥对 openssl genrsa -des3 -out server.key 运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令。 去除key文件口令的命令: openssl rsa -in

HTTPS详解二:SSL / TLS 工作原理和详细握手过程

蹲街弑〆低调 提交于 2020-02-02 13:37:24
HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章 HTTPS详解一 中,我已经为大家介绍了 HTTPS 的详细原理和通信流程,但总感觉少了点什么,应该是少了对安全层的针对性介绍,那么这篇文章就算是对 HTTPS 详解一 的补充吧。还记得这张图吧。 HTTPS 和 HTTP的区别 显然,HTTPS 相比 HTTP最大的不同就是多了一层 SSL (Secure Sockets Layer 安全套接层)或 TLS (Transport Layer Security 安全传输层协议)。有了这个安全层,就确保了互联网上通信双方的通信安全,那么这个安全层是怎么工作的,SSL / TLS 握手过程又是怎样的呢?本文将对这些问题一一解答。 1、SSL / TLS 以及 SSL / TLS 握手的概念 SSL 和 TLS 协议可以为通信双方提供识别和认证通道,从而保证通信的机密性和数据完整性。TLS 协议是从Netscape SSL 3.0协议演变而来的,不过这两种协议并不兼容,SSL 已经被 TLS 取代,所以下文就以 SSL 指代安全层。 TLS 握手是启动 HTTPS 通信的过程,类似于 TCP 建立连接时的三次握手。 在 TLS 握手的过程中,通信双方交换消息以相互验证,相互确认

CURL 访问 HTTPS 的坑 [后记]

风格不统一 提交于 2019-12-22 01:41:00
上次踩过 PHP CURL 请求 HTTPS 协议网站的坑 PHP CURL HTTPS Error: "SSL certificate problem: unable to get local issuer certificate" 搜索并总结了一下CURL访问HTTPS需要配置的参数 # CA 证书文件路径 CURLOPT_CAINFO # CA 证书文件夹路径, 一般用上面选项即可 CURLOPT_CAPATH 然后去CURL官网下载了CA证书 CA证书下载链接 以为就此万事大吉了, 万万没想到又遇到坑, 在请求阿里云HTTPS接口时CA证书里并没有收录 GlobalSign Organization Validation CA - SHA256 - G2 于是用浏览器打开该网址能正常握手并通讯说明系统是收录了这个证书的,因此你需要导出该证书在原来的 cacert.pem 添加该证书. 导出方法 : 我用的是火狐浏览器导出, 地址栏左边绿色的小锁->更多信息 安全->查看证书->详细信息 注意证书链中的每个证书都需要在你的curl使用的cacert.pem文件中, 如果已经存在上级证书仅导出你想要的子证书即可, 否则需要导出全部的证书链中的证书 当然如果导出的是证书链其实直接可以替代 cacert.pem 文件直接使用的, 但是也只能访问有该机构ca根证书签名认证过的网站

安卓访问https错误,访问http可以,可能是nginx ssl证书配置有问题

北战南征 提交于 2019-12-12 12:46:58
开发中遇到react-native生成的android访问UAT和开发环境的http api都可以,但是访问生产环境的https就报错,还有就是第三方webhook调用你https网站的api也可能会出现ssl握手失败的错误 这种问题可能是由于你的证书里只有一个证书,没有证书链,可以通过这个网址检查你的域名ssl证书配置是否正确: https://www.sslshopper.com/ssl-checker.html 一般证书里只包含一个certificate如下: 而证书链里包含多个: 在nginx中把证书链配置跟证书配置其实一样 下载证书链,可以通过火狐浏览器打开你的https网址,点击小锁logo,查看证书,可以下载证书链 参考: https://www.jianshu.com/p/8d525696ce86 https://www.alibabacloud.com/help/zh/faq-detail/50239.htm 来源: https://www.cnblogs.com/xiaozhu39505/p/12027998.html

X.509

做~自己de王妃 提交于 2019-12-06 17:35:32
参考:https://baike.baidu.com/item/X.509/2817050?fr=aladdin 标题:X.509 百度百科 在密码术中,X.509是定义公用密钥证书格式的标准。 X.509证书用于许多Internet协议,包括TLS / SSL,这是HTTPS(浏览网络的安全协议)的基础。 它们还用于脱机应用程序,例如电子签名。 X.509证书包含公钥和身份(主机名,组织或个人),并且由证书颁发机构签名或自行签名。 当证书由受信任的证书颁发机构签名或通过其他方式进行验证时,持有该证书的人可以依靠其包含的公钥与另一方建立安全通信,或验证由相应私钥进行数字签名的文档。 X.509 是密码学里公钥证书的格式标准。 X.509 证书己应用在包括TLS/SSL(WWW万维网安全浏览的基石)在内的众多 Internet协议里.同时它也用在很多非在线应用场景里,比如电子签名服务。X.509证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构CA的签名,也可以是自签名)。对于一份经由可信的证书签发机构签名或者可以通过其它方式验证的证书,证书的拥有者就可以用证书及相应的私钥来创建安全的通信,对文档进行 数字签名 . 另外除了证书本身功能,X.509还附带了 证书吊销列表

[nginx] nginx使用SNI功能的方法

ⅰ亾dé卋堺 提交于 2019-12-02 03:09:53
概念 我们已经知道什么SNI,已经如果为用户配置SNI。 [nginx] nginx使用SNI功能的方法 问题 通过配置,可以发现,针对每一个SSL/TLS链接, nginx都会动态的查找与加载找到正确的证书。 那么在这个过程中,与没有SNI配置的情况下,有什么性能异同呢? 通过对这不部分的源码分析,将给出答案。 (不关注源码的话,可以直接翻到后文查看“结论”章节。) 图 分析 如上图所示 1 模块 nginx使用两个模块(这里只针对http进行分析,stream请自行类推),ngx_openssl_module 与 ngx_http_ssl_module。其中前者为核心模块。后者为http模块。 核心模块会被master进程调用ngx_ssl_init()函数进行加载,完成全局处理,包括对openssl的初始化。 http模块将由http框架完成处理,可以分为配置阶段与connection的解析阶段。 2 配置阶段 见图中的红框“流程二”。这个阶段就是逐行处理配置文件的阶段。在这个阶段里,merge ssl server config的时候, http_ssl将判断是否配置了SNI功能。 如果没有配置,将调用ngx_ssl_certificate()函数加载证书链里边的所有证书 ,将其读进内存并保存在全局配置文件的ctx结构体呢。ctx结构体是openssl api中的全局上下文

关于腾讯开放平台的应用认领

让人想犯罪 __ 提交于 2019-11-26 11:35:53
今天想把自己开发的应用上传到腾讯的开放平台,却发现应用的包明冲突了。原来是以前申请的腾讯开放平台已经上传过一次这个应用了。没办法,只能通过腾讯的应用认领来把这个应用来认领到当前的这个账号。下面我就吧认领过程中遇到的一些问题总结一下。 【Android】命令行jarsigner签字和解决找不到证书链错误 1、签名失败 $jarsigner -verbose -keystore /Volumes/Study/resourcesLib/Qunero-achivements/AndroidApp/QuLordy-signed-key -signedjar ./signed_XiaomiVerify.apk ./XiaomiVerify.apk qulordy 输入密钥库的口令短语: jarsigner: 找不到 qulordy 的证书链。qulordy 必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。 2、查看帮助 复制代码 $jarsigner -h 用法:jarsigner [选项] jar 文件别名(key的别名) jarsigner -verify [选项] jar 文件 [-keystore <url>] 密钥库位置 [-storepass <口令>] 用于密钥库完整性的口令 [-storetype <类型>] 密钥库类型 [-keypass <口令>]