证书管理:证书获取和生成
证书获取
通过浏览器查看网站证书已经可以看到许多信息,版本号、签名算法、公钥,证书链和各种扩展项,如果我们想获取该证书,用浏览器的方式也很简单。在查看证书处,详细信息,复制到文件就可以选择以某种格式导出证书。
获取网站证书也可以让我们看到其中的中间证书和根证书,例如我们可以看看CSDN网站的证书:
从Certificate chain证书链信息中可以看到,blog.csdn.net网站的服务器证书*.csdn.net,中间证书是Geo Trust RSA CA 2018,根证书DigiCert。往下看,从BEGIN CERTITICATE开始到END CERTITICATE就是证书的内容,如果BEGIN CERTITICATE前有编号为0,证明是服务器证书的内容,如果编号为1是中间证书的内容。在整个输出中我们都没有看到根证书的内容,因为根证书已经集成到了浏览器中。
证书生成
CSR文件就是证书申请文件,Certificate Signing Request,在服务器实体申请证书时,都要向CA机构提交CSR文件,里面包含了自己的域名,服务器公钥,还有服务器自己的一些机构信息等。最后使用服务器私钥对其进行签名,得到的CSR文件再发送给CA机构,
生成CSR文件
用req子命令可以选择交互式或者非交互式的方式来生成CSR文件和密钥对:
可以看到,在生成CSR文件和密钥对的命令中,-sha256表示证书使用的哈希算法和哈希值长度为256位。-newkey表示生成新的密钥对,后面接的rsa自然就是使用的非对称加密生成rsa密钥对,密钥长度为2048bit。最后-keyout和-out分别表示输出密钥对文件和输出CSR文件。这样的方式生成CSR文件和密钥对,需要手动输入一些信息,例如下面看到的需要手动输入国家,城市和机构名,邮箱地址等信息。当然也可以使用非交互式的方式,手动在命令里设置一些信息,上图中倒数第7行,加入-subj参数。
生成CSR文件后,我们可以打开看一看里面的信息:
Subject Public Key Info标识的是服务器公钥信息,Public Key Algorithm是使用的公钥算法rsa,密钥长度2048bit。下面的Signature Algorithm标识的是签名算法和签名值。
生成自签名证书
接下来就可以利用这个CSR文件生成自签名证书,自签名证书说白了就是用自己的私钥对证书进行签名,自己证明自己的身份,通常用在内部测试环境中。
生成自签名的证书用x509子命令,其中-days参数顾名思义就是证书的有效期为365天,-in domain_csr.pem标识使用该CSR文件,-signkey domain_key.pem标识使用该密钥对的公钥,最后-out输出生成的证书文件domain_cert.pem,看到Signature ok表示签名成功。
证书结构信息
生成自签名证书后,可以看看证书的一些内部信息:
例如-endate参数,查看证书的过期时间,记得上面设置的是365天也就是一年,这里第二行过期时间就是2021年。还有下面的-issuer参数,查看证书的使用者,也就是签发该证书的CA机构,由于这是一张自签名证书,签发者当然就是我们前面设置的信息。-pubkey参数用来查看证书公钥。
我们也可以使用x509子命令来查看服务器证书的所有信息:
可以看到,直接列出证书的所有结构信息,Version版本号,Serial Number证书的序列号,在身份校验阶段,查询证书吊销状态靠的就是这个序列号。Signature Algorithm是签名算法,Validity是校验时需要的证书有效期,可以看到,起始日期2020年,有效期为一年。Subject Public Key Info包含了证书的公钥信息,算法是rsa非对称加密,公钥长度2048bit,Modulus是非对称加密中的参数n,也就是RSA内部结构中,两个大质数p和q的乘积,n的长度就是密钥对的长度,同时n也是组成公钥的参数之一。往下走,Exponent是RSA内部结构中的参数e,e和n组合起来才得到最后的公钥。最后一项Signature Algorithm自然就是签名算法和下面的签名值。
证书管理:证书获取和生成相关推荐
- java和签名工具_java 证书工具keytool生成自签名证书和自签CA证书
jdk自带的证书管理工具叫keytool,在jdk/bin目录下,可以用来生成自签名证书.导入导出证书.打印证书信息等. 1. 名词 自签名证书:用自己的私钥签发自己的公钥即主体信息生成的证书. 证书 ...
- 签名算法sha256withrsa,RSA数字证书公钥私钥生成,base64转码和文件日志
RSA数字证书公钥密钥生成: 在Linux系统下运行以下命令生成: 如果提示输出密码,可以为空,直接回车 生成的公钥rsa_public_key.pem和密钥rsa_private_key.pem文件 ...
- 腾讯云域名证书哪里下载_备案域名证书获取方法
给腾讯云网站备案的时候,需要提供域名证书,对于才开始学习自己建网站的朋友来说,可能会有一个问题就是:域名证书从哪里找?域名证书从哪里下载? 我给大家介绍在腾讯云注册的域名或者其他国内域名注册商注册的域 ...
- 腾讯云域名证书下载_备案域名证书获取
给腾讯云域名备案时要提供域名证书,初学者会问:域名证书从哪里找?域名证书从哪里下载? 以腾讯云为例,给大家介绍注册域名从哪里获取域名证书. 腾讯云域名证书获取方式 更多参阅官方文档 如果是在腾讯云注册 ...
- IOS证书获取(证书profile文件,p12私钥证书,证书私钥密码,Bundle ID)
当我们在开发一个应用APP时需要真机测试,或者上架到对应的应用市场,这时就需要 App打包(打包流程),那么打包时就需要Bundle ID.证书私钥密码.证书profile文件.私钥证书. 申请这些资 ...
- Let’s Encrypt免费证书获取方法
Let's Encrypt 免费证书获取方法 一.Let's Encrypt证书前置需求 二.证书兼容性 三.使用acme.sh生成证书 四.安装证书 五.更新证书 六.排错 一.Let's Encr ...
- 苹果真机调试证书获取
苹果真机调试的证书获取,网上有很多详细的说明.我这里只是把整个流程用图表现出来,知道大概怎么回事情以后,再看网上的教程就不容易晕了. 简单说分以下几步 本机生成证书申请文件(CSR文件) 在开发者中心 ...
- 微信商户API证书获取和API证书升级指引
说在前面的话: 目前微信支付REST API只支持使用证书授权机构(Certificate Authority , 简称CA)签发颁发的证书.商户需下载证书 工具生成证书请求串, 并将证书请求串提交到 ...
- ssl证书获取与tomcat和nginx设置https
文章目录 1 SSL证书获取 第1步 进入 域名 点击 开启 SSL证书 第2步 选择证书类型 第3步 确认部署证书 2 下载安装 https 2.1 Tomcat 安装 第1步 新建 cert文件夹 ...
最新文章
- python爬取单个网页照片!
- 1.2 线性回归与梯度下降-机器学习笔记-斯坦福吴恩达教授
- spring同类调用事务不生效-原因及三种解决方式
- python网络爬虫系列(十一)——JS的解析
- 向MIP开源项目提交Issues
- Opencv--cvGEMM、cvMatMul和cvMatMulAdd的定义
- ruby中的特殊字符
- 生肖牛年元素新年促销电商PSD分层页面模板|妥妥过年!
- Jetpack 迁移到 androidX support MD
- MySQL外键约束详解
- git报错之fatal: protocol error: bad line length character: No This
- 如何在Mac上恢复已删除或丢失的分区
- 主题:基于非合作博弈模型多微网交易策略研究 参考文档:《基于博弈论的多微电网系统交易模式研究》完全复现
- 2021-03-26,拉胯的三条命令,HappyCTFd
- 【win10 cuda pytorch】从无到有配置gpu运算pytorch的极度详细完整方法教程(包括各种坑),网上其他方法基本可行性不高
- java自动机字符串匹配_字符串匹配之有限自动机
- ENSP端口角色和状态
- 折线统计html,canvas制作简单的HTML图表,折线或者矩形统计(原创)
- WiFi,你真的还安全吗?
- 9 计算机键盘是一个______,一种计算机键盘专用的清洁装置专利_专利申请于2018-05-31_专利查询 - 天眼查...