About certificate
证书spec, X509, 类似规定了一个目录结构。其中重要内容包括
- issuer: who isued this certificate
- subject: the ID of this certificate
- public key:
- validate period
- sign: the sha of this certificate, encritpted with the issuer's private key. (This is the mechanism how to verify the certificate)
- in extention, other there is a link to get certificate of issuer.
DN (distingushed name)
- include C(country), ST(state), O(organization), OU(部门,可以多个), CN(common name)
- both Issuer and Subject are DN.
Certificate formate
- PEM, base64 encoded DER file, easy to be edited
- DER, CER, CRT. same, DER, Distinguished Encoding Rules. openssl -inform der -in a.cert -text -noout
- P12. Windows specific, contails both public key and private key. So the file itself should be encriypted.
- p7b, p7c. CRL (certificate revocation list) 常用于证书吊销文件,不包括key
- JKS. Java Key storage(Java 专利)利用 keytool 管理
应用
- Safari and macOS, managed by "keychain access". The each keychain is stored in separated directory. login means the current login user.
- Java, keytool 管理,has different location from OS(e.g. /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/security/cacerts), so even safari downloaded a Root CA for a website, Java may still not work.
- keytool -list -keystore cacerts
- Python:
- public certs stored in certifi module ([py_home]/site-packages/certifi/cacert.pem), then all python modules relying on certifi (e.g. requests) could load certs for ssl verification
- However, pip is a standalone package that contains its own requests/certifi module and public cert storage. One solution is to wrap original certifi.where() and pip._vendor.requests.certs.where() method to force return path ‘/etc/pki/tls/cert.pem’. Make sure all certs are store in it.
- CN name: https://security.stackexchange.com/questions/40026/openssl-x509-whats-the-significance-of-cn-common-name
- curl, use curl -v to see with cacert it is using, maybe /etc/ssl/cacert.pem, makeby $HOME/anaconda/ssl/cacert.pem.
- 手动指定使用某个证书来验证网站 curl --cacert mycertificate.cer -v https://www.google.com
References:
- cert format,
- https://serverfault.com/questions/9708/what-is-a-pem-file-and-how-does-it-differ-from-other-openssl-generated-key-file
- https://www.cnblogs.com/guogangj/p/4118605.html
- https://en.wikipedia.org/wiki/X.509 (X.509 内容说明) ,
- PKIX (Public Key Infrastructure X.509)
- OCSP (Online Certificate Status Protocol)
- verify certificate: https://stackoverflow.com/questions/188266/how-are-ssl-certificates-verified
- Certificate Chain:
- https://ssl.comodo.com/articles/understanding-an-ssl-certificate-chain.php
- https://support.dnsimple.com/articles/what-is-ssl-certificate-chain/
Root certificate
- Intermediate certifcate
- client certificate. In SSL, webserver might need to veifiy the certificate of the client. Usually it doesn't.
About certificate的更多相关文章
- 钉钉开放平台demo调试异常问题解决:hostname in certificate didn't match
今天研究钉钉的开放平台,结果一个demo整了半天,这帮助系统写的也很难懂.遇到两个问题: 1.首先是执行demo时报unable to find valid certification path to ...
- 异常处理之“The remote certificate is invalid according to the validation praocedure.”
参考文章:http://brainof-dave.blogspot.com.au/2008/08/remote-certificate-is-invalid-according.html 参考文章:h ...
- The certificate used to sign ***has either expired or has been revoked. An updated certificate is required to sign and install the application
真机测试的时候弹出这样的提示:The certificate used to sign ***has either expired or has been revoked. An updated ce ...
- Domino----The Address Book does not contain a cross certificate capable of validating the public key.
The Address Book does not contain a cross certificate capable of validating the public key. 地址本不包含交叉 ...
- Your account already has a valid iOS Distribution certificate!
iOS 发布提交出现:Your account already has a valid iOS Distribution certificate!问题解决 转载的链接 http://www.jia ...
- configure Git to accept a particular self-signed server certificate for a particular https remote
get the self signed certificate put it into some (e.g. ~/git-certs/cert.pem) file set git to trust t ...
- [nodejs] Error: unable to verify the first certificate
Error: unable to verify the first certificate Solution npm config set registry http://registry.npmjs ...
- Rails 之微信开发 : OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
微信公众平台,使用Ruby On Rails + Win7 在取得OpenID时,如果简单的使用http.get方法,会出现如下 SSL_connect returned=1 errno=0 stat ...
- Fiddler 手机端证书安装No root certificate was found
测试过程中发现在浏览器中访问代理服务器及端口,不通,提示要安装证书. 点击证书安装时,提示错误: No root certificate was found,Have you enabled HTTP ...
- 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
1.概念介绍 如果你拥有一个开发者账户的话,在iOS Dev Center打开Certificates, Indentifiers & Profiles,你就可以看到如下的列表: Profil ...
随机推荐
- JAVA版本微信管家平台—JeeWx 捷微 4.1 微服务版本发布,微信砍价活动闪亮登场!
捷微 4.1 微服务版本发布,微信砍价活动闪亮登场 ^_^ JEEWX 从4.0版本开始,技术架构全新换代更名 “捷微H5”.这是一款开源免费的微信运营平台,是jeewx的新一代产品,平台涵盖了: ...
- Linux命令:help
语法 help: help [-dms] [模式 ...] 显示内建命令的相关信息. 显示内建命令的简略信息.如果指定了 PATTERN 模式,给出所有匹配 PATTERN 模式的命令的详细帮助,否则 ...
- 20175213 2018-2019-2 《Java程序设计》第6周学习总结
教材学习内容总结 1.第七章:内部类与异常类 ①.内部类和外嵌类之间的重要关系: ·内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法. ·内部类的类体中不可以声明类变 ...
- jq 获取下一个兄弟原素 下拉箭头旋转
$('.weui-cells__title').on("click", function(e,rr){ isshow=$(this).attr('isshow') if(issho ...
- docker挂载目录的深入研究
转载一篇很好的文章: https://www.cnblogs.com/ivictor/p/4834864.html
- day46 前端基础HTML5+CSS3
编辑器 pycharm,sublime,hbuild,webstorm,atom 前端概念 广义:用户能看见并且交互的显示页面 狭义:运行在浏览器上的页面 学习的语言 html5 => (h5架 ...
- 移动端rem适配
(function(_D) { var _self = {}; _self.resizeEvt = 'orientationchange' in window ? 'orientationchange ...
- XACT_ABORT选项
XACT_ABORT选项用于指定当SQL语句出现运行时错误时,SQL Server是否自动回滚到当前事务.其语法格式如下所示: SET XACT_ABORT{ON|OFF} 当SET XACT_ABO ...
- Food Delivery ZOJ - 3469(区间dp)
题目传送门 题目翻译:当我们专注于解决问题时,我们通常宁愿呆在电脑前而不是外出吃午饭.在这个时候,我们可能会要求提供食物. 假设有N个人生活在一条直线的街道上,它只是位于X坐标轴上.第i个人的坐标是X ...
- shell的 ls命令
Linux下shell 的 ls 命令 ls -d 显示当前目录的上层目录,不显示子目录 ls -a 显示当前目录下的所有子目录,包括隐藏的文件 ls -l 显示当前目录下所有文件的所有信息(除隐藏文 ...