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 ...
随机推荐
- MTK之DrvGen的使用
打开mcu\custom\drv\Drv_Tool [L206X_code20190321\custom\drv\Drv_Tool]下的DrvGen.exe,如下图所示: 点击"Open&q ...
- Caused by: java.lang.IllegalArgumentException: argument type mismatch
下面是我的报错信息 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java: ...
- 如何配置mysql的超时时间
http://bigdata.51cto.com/art/201710/555377.htm
- Cannot forward to error page for request ......
今天现场报了以下问题: Cannot forward to error page for request [/order/search] as the response has already bee ...
- chrome调试vue.js的插件:vue.js devtools
1.什么是vue.js devtools? vue.js devtools是chrome的一款插件,用来调试vue的一款神器. 2.为什么下载vue.js devtools? 由于vue是数据驱动的, ...
- GIS 案例教程-蜂窝多边形制作模型
GIS 案例教程-蜂窝多边形制作模型 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 优点: 拖放式,非编程,复制即用,不用配置. 效率高,非迭代,可以处理大数据. ...
- 阿里云消息队列的C#使用http接口发送消息实例
app.config <appSettings> <clear/> <add key="Ons_Topic" value="XXX_Fini ...
- JSONObject optString
JSONObject optString 获取后台返回的{"state":1001,"data":"数据保存成功"} 用optString ...
- java第四章接口
接口(interface) 语法:修饰符 interface 接口名 extends 父接口1,父接口2....{ //常量定义 //方法定义} class 类名 extends 父类名 impl ...
- BigDecimal 类型转换、运算、比较
序:Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数 ...