X.509数字证书

在国密标准文件《GMT 0015-2012 基于SM2密码算法的数字证书格式》里有对X.509数字证书格式的详细描述。

数字证书的定义

由国家认可的,具有权威性、可信性和公正性的第三方证书认证机构(CA)进行数字签名的一个可信的数字化文件。

数字证书的特性

1、任何能够获得和使用认证机构公钥的用户都可以恢复认证机构所认证的公钥。

2、除了认证机构,没有其他机构能够更改证书,证书是不可伪造的。

由于证书是不可伪造的,所以可以通过将其放置在目录中来发布,而不需要以后特意去保护它们。

数字证书的格式

采用GB/T 16262系列标准的特定编码规则(DER)对下列证书项中的各项信息进行编码,组成特定的证书数据结构。ASN.1 DER编码是关于每个元素的标记、长度和值的编码系统。

描述
version2整数2用于版本3证书
serialNumberINTEGER
issuer
  Name必须与Subject DN一致
    RDNSequence
      RelativeDistinguishedName
        AttributeTypeAndValue
          AttributeTypeOID
          AttributeValue参考5.2.3.4
validity
  NotBefore
    Time
      UtcTimeYYMMDDHHMMSSZ用于2049之前的年份(含2049)
      generalTimeYYYYMMDDHHMMSSZ用于2049之后的年份
  NotAfter
    Time
      UtcTimeYYMMDDHHMMSSZ用于2049之前的年份(含2049)
      generalTimeYYYYMMDDHHMMSSZ用于2049之后的年份
subject
  Name必须与Issuer DN一直
    RDNSequence
      RelativeDistinguishedName
         AttributeTypeAndValue
           AttributeTypeOID
           AttributeValue参考5.2.3.4
subjectPublicKeyInfo
  algorithm
    AlgorithmIdentifier公钥算法,可能是RSA公钥或椭圆曲线公钥
      algorithm1.2.840.113549.1.1.1RSA
1.2.156.10197.1.301SM2椭圆曲线公钥密码算法
      parametersNULLRSA
ECPublicKeySpec当使用SM2密码算法时,为SM2密码算法曲线的OID

数字证书的实践

使用openssl生成证书

$ openssl req -newkey rsa:1024 -out req.pem -keyout sslclientkey.pem
$ openssl ca -in req.pem -out sslclientcert.pem

查看证书内容

$ openssl x509 -in sslclientcert.pem -text -noout
Certificate:Data:Version: 3 (0x2)Serial Number:f5:7d:2c:e9:8b:a7:72:a1Signature Algorithm: sha256WithRSAEncryptionIssuer: C=CN, ST=JS, L=NJ, O=JZ, OU=JZ, CN=XX/emailAddress=123@123.comValidityNot Before: May 27 02:42:27 2024 GMTNot After : May 27 02:42:27 2025 GMTSubject: C=CN, ST=JS, O=JZ, OU=JZ, CN=XX/emailAddress=123@123.comSubject Public Key Info:Public Key Algorithm: rsaEncryptionPublic-Key: (1024 bit)Modulus:00:d5:0e:4a:f2:21:1a:25:e4:86:cd:21:2b:4d:b8:bd:21:05:a5:f0:ab:91:c1:1d:aa:ba:3d:91:a3:eb:00:ec:42:c7:38:c6:50:b4:2a:43:3f:d9:e2:94:13:23:a5:e7:74:2c:73:bf:e8:29:3a:72:41:6f:fc:be:2c:6b:eb:35:b4:9f:7d:e2:b6:b8:62:30:a8:a1:7a:b6:47:3b:a5:b9:92:94:df:af:7d:0c:ab:af:3b:eb:76:06:09:cf:0f:59:33:54:de:cf:b3:ba:aa:22:35:34:fb:a0:1a:3f:89:8e:ff:04:af:f0:85:67:64:b1:ea:34:ef:72:6e:f9:9a:1f:3bExponent: 65537 (0x10001)X509v3 extensions:X509v3 Basic Constraints:CA:FALSENetscape Comment:OpenSSL Generated CertificateX509v3 Subject Key Identifier:A5:70:4E:A8:2A:12:D1:93:9A:02:F2:81:54:68:11:67:0E:5C:97:3AX509v3 Authority Key Identifier:keyid:2E:5F:85:F6:02:29:A0:10:47:B8:DB:8F:0C:C6:2F:1D:80:AA:9C:7BSignature Algorithm: sha256WithRSAEncryption4f:ce:d5:16:ad:54:91:d4:72:ca:34:63:85:b7:3e:64:48:91:ab:a1:1e:7f:e1:be:f2:ef:7f:0a:e9:f7:54:e0:53:96:05:de:ec:fb:16:1d:e1:ce:34:c9:7f:fd:d5:d4:7f:83:84:b7:f6:5e:0a:bb:af:94:5a:0b:c7:8c:1f:25:dd:71:0e:6f:24:06:d7:8f:74:67:e9:9c:9a:c3:b6:ef:0a:b8:ea:1f:77:51:24:2c:3e:1e:99:06:c4:ed:89:bd:c7:67:14:70:16:e5:36:05:86:f6:bc:f8:73:7f:81:cc:54:a6:9e:96:eb:bb:b0:45:56:1c:f8:44:b0:34:e9:a2:c4:85:a0:56:84:7f:7e:da:f5:0c:cd:da:e3:e6:e7:fb:4d:c0:b9:5d:fc:9e:d9:f9:61:91:ef:9c:e6:09:08:1f:4f:28:e0:56:f0:d4:b4:09:e1:9a:ff:5c:5d:8f:31:61:7f:75:31:ba:91:17:70:48:71:6e:33:ec:5e:87:95:80:2e:7f:a9:7d:de:41:29:4f:85:df:7d:4e:c1:19:cd:68:90:69:ab:e1:dc:f5:50:d4:65:e9:8d:9f:d9:8a:c1:5e:9a:0b:55:f5:08:4e:43:88:9a:5b:ef:ba:ab:b9:a9:b5:71:ae:b2:33:69:45:c0:04:be:5d:18:5b:28:d7:28:fb

证书格式转换:将PEM转换为DER格式

$ openssl x509 -in sslclientcert.pem -outform der -out sslclientcert.der

查看DER格式证书内容

$ openssl x509 -in sslclientcert.der -inform der -text -noout
Certificate:Data:Version: 3 (0x2)Serial Number:f5:7d:2c:e9:8b:a7:72:a1Signature Algorithm: sha256WithRSAEncryptionIssuer: C=CN, ST=JS, L=NJ, O=JZ, OU=JZ, CN=XX/emailAddress=123@123.comValidityNot Before: May 27 02:42:27 2024 GMTNot After : May 27 02:42:27 2025 GMTSubject: C=CN, ST=JS, O=JZ, OU=JZ, CN=XX/emailAddress=123@123.comSubject Public Key Info:Public Key Algorithm: rsaEncryptionPublic-Key: (1024 bit)Modulus:00:d5:0e:4a:f2:21:1a:25:e4:86:cd:21:2b:4d:b8:bd:21:05:a5:f0:ab:91:c1:1d:aa:ba:3d:91:a3:eb:00:ec:42:c7:38:c6:50:b4:2a:43:3f:d9:e2:94:13:23:a5:e7:74:2c:73:bf:e8:29:3a:72:41:6f:fc:be:2c:6b:eb:35:b4:9f:7d:e2:b6:b8:62:30:a8:a1:7a:b6:47:3b:a5:b9:92:94:df:af:7d:0c:ab:af:3b:eb:76:06:09:cf:0f:59:33:54:de:cf:b3:ba:aa:22:35:34:fb:a0:1a:3f:89:8e:ff:04:af:f0:85:67:64:b1:ea:34:ef:72:6e:f9:9a:1f:3bExponent: 65537 (0x10001)X509v3 extensions:X509v3 Basic Constraints:CA:FALSENetscape Comment:OpenSSL Generated CertificateX509v3 Subject Key Identifier:A5:70:4E:A8:2A:12:D1:93:9A:02:F2:81:54:68:11:67:0E:5C:97:3AX509v3 Authority Key Identifier:keyid:2E:5F:85:F6:02:29:A0:10:47:B8:DB:8F:0C:C6:2F:1D:80:AA:9C:7BSignature Algorithm: sha256WithRSAEncryption4f:ce:d5:16:ad:54:91:d4:72:ca:34:63:85:b7:3e:64:48:91:ab:a1:1e:7f:e1:be:f2:ef:7f:0a:e9:f7:54:e0:53:96:05:de:ec:fb:16:1d:e1:ce:34:c9:7f:fd:d5:d4:7f:83:84:b7:f6:5e:0a:bb:af:94:5a:0b:c7:8c:1f:25:dd:71:0e:6f:24:06:d7:8f:74:67:e9:9c:9a:c3:b6:ef:0a:b8:ea:1f:77:51:24:2c:3e:1e:99:06:c4:ed:89:bd:c7:67:14:70:16:e5:36:05:86:f6:bc:f8:73:7f:81:cc:54:a6:9e:96:eb:bb:b0:45:56:1c:f8:44:b0:34:e9:a2:c4:85:a0:56:84:7f:7e:da:f5:0c:cd:da:e3:e6:e7:fb:4d:c0:b9:5d:fc:9e:d9:f9:61:91:ef:9c:e6:09:08:1f:4f:28:e0:56:f0:d4:b4:09:e1:9a:ff:5c:5d:8f:31:61:7f:75:31:ba:91:17:70:48:71:6e:33:ec:5e:87:95:80:2e:7f:a9:7d:de:41:29:4f:85:df:7d:4e:c1:19:cd:68:90:69:ab:e1:dc:f5:50:d4:65:e9:8d:9f:d9:8a:c1:5e:9a:0b:55:f5:08:4e:43:88:9a:5b:ef:ba:ab:b9:a9:b5:71:ae:b2:33:69:45:c0:04:be:5d:18:5b:28:d7:28:fb

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/18375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv10代码详细介绍(附录训练教程和权重)

前言 YOLOv10 是清华大学研究人员在 UltralyticsPython 清华大学的研究人员在 YOLOv10软件包的基础上,引入了一种新的实时目标检测方法,解决了YOLO 以前版本在后处理和模型架构方面的不足。通过消除非最大抑制(NMS)和优化各种模型…

【几何角度】感知机

本质:将n维空间中的一些点线性投影到一维,在一维轴上找一个阈值对这些点进行二分类。 程序: import numpy as npclass Perceptron:def __init__(self, learning_rate0.01, n_iterations1000):self.learning_rate learning_rateself.n_itera…

【Python基础】一文搞懂:Python 中 “requirements.txt“ 文件生成和使用

文章目录 1 引言2 什么是 requirements.txt?3 如何生成 requirements.txt?3.1 方法一:使用 pip freeze3.2 方法二:使用 pipreqs 3.3 使用 pip freeze 和 pipreqs 的对比4 如何使用 requirements.txt?4.1 安装依赖4.2 更…

[从零开发JS应用] 如何在VScode中配置Javascript环境,常见的调试方法有哪些?

一、安装VSCode和Node.js 记录环境配置:本文配置的环境主要针对单独JS文件的断点调试,主要是为了调试LeetCode里面的代码。 首先在官网下载对应的版本:https://nodejs.org/en/ 开始安装,可以自定义选择安装路径。 这里选择Add Pa…

【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk

背景:部分客户需求将自己网站打包成app,供用户在浏览器安装使用、 网页网址快速生成app 准备材料操作流程第一步:打开HBuilder X新建项目第二步创建Wap2App项目第三步修改App图标第四步发布app第五步查看apk 准备材料 1.需要打包的网页 2.ap…

在网页开发中,前后端如何更好地协同工作?

在网页开发中,前后端如何更好地协同工作是非常关键的,以下是一些方法和技巧可以帮助前后端更好地协同工作: 1.明确需求和规范:前后端应该共同讨论和明确项目的需求和规范,包括功能、界面、数据格式等。确保双方对项目…

页面加载不出来,报错[@umijs/runtime] load component failed

问题描述 页面加载不出来数据,一直在旋转,控制台输出内容如下: 原因分析: 之前页面是没有问题的,在写当前页面突然出现页面加载不出来,控制台报错,主要是页面引入了这行代码报错 import { …

MX Component基础使用(多点位读取,多点位写入)

步骤,先连接PLC,然后在填入对应的点位 D10 然后去读取。 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;us…

边缘计算网关的主要功能有哪些?天拓四方

随着物联网(IoT)的快速发展和普及,边缘计算网关已经成为了数据处理和传输的重要枢纽。作为一种集成数据采集、协议转换、数据处理、数据聚合和远程控制等多种功能的设备,边缘计算网关在降低网络延迟、提高数据处理效率以及减轻云数…

民国漫画杂志《时代漫画》第13期.PDF

时代漫画13.PDF: https://url03.ctfile.com/f/1779803-1247458360-14efab?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络!

数组的定义、顺序存储及特殊矩阵的存储

目录 一、数组的定义 1.1概念 1.2抽象数据类型定义 二、数组的顺序存储 2.1一维数组元素的存储位置 2.2二维数组元素的存储位置 2.3三维数组元素的存储位置 三、特殊矩阵的压缩存储 3.1相关概念 3.2对称矩阵 3.3三角矩阵 3.4对角矩阵(带状矩阵&#xff0…

【机器学习300问】102、什么是混淆矩阵?

一、混淆矩阵的定义 混淆矩阵是一种用于评估分类模型性能的评估指标。当模型对数据进行预测并将数据分配到预定义的类别时,混淆矩阵提供了一种直观的方式来总结这些预测与数据实际类别之间的对应关系。具体来说,它是一个表格。 二、分类模型性能评估一级…

私域用户画像分析

为什么做私域要分析用户画像? 1、更好地了解用户需求:通过分析用户画像,可以深入了解用户的需求、偏好、行为等特征,从而更好地满足他们的需求。 2、个性化营销:根据用户画像,可以为用户提供个性化的营销…

js setTimeout、setInterval、promise、async await执行顺序梳理

基础知识 async: 关键字用于标记一个函数为异步函数,该函数中有一个或多个promise对象,需要等待执行完成后才会继续执行。 await:关键字,用于等待一个promise对象执行完,并返回其中的值,只能在async函数内部使用。可…

云服务器平台AutoDL--基本介绍与使用感受

因为课程作业需要复现DreamBooth,找了几个教程之后,发现了AutoDL这个好东西,芜湖~ 相关概念 以下回答来自于ChatGPT。 云计算平台:云服务器平台是提供按需计算资源和服务的在线平台,通常包括存储、处理能力、数据库、…

搜维尔科技:使用Haption Virtuose 6D 力反馈通过机器人和虚拟现实完成远程操作项目

使用Haption Virtuose 6D 力反馈通过机器人和虚拟现实完成远程操作项目 搜维尔科技:使用Haption Virtuose 6D 力反馈通过机器人和虚拟现实完成远程操作项目

【Python设计模式06】代理模式

代理模式(Proxy Pattern)是一种结构型设计模式,它通过创建代理对象来控制对另一个对象的访问。代理模式可以用于延迟实例化、控制访问权限、记录日志等。代理模式的核心思想是为其他对象提供一种代理,以控制对这个对象的访问。 代…

System32文件夹千万不能删除,看完这篇你就知道为什么了

序言 C:\Windows\System32目录是Windows操作系统的关键部分,重要的系统文件存储在该目录中。网上的一些恶作剧者可能会告诉你删除它,但你不应该尝试去操作,如果你尝试的话,我们会告诉你会发生什么。 什么是System32文件夹 位于C:\Windows\System32的System32文件夹是所有…

Python深度学习:【模型系列】Transformer面试灵魂20问

1. transformer简介 Transformer模型是一种基于自注意力机制的神经网络架构,主要用于处理序列数据,如自然语言处理任务。它由Google在2017年提出,并在“Attention is All You Need”这篇论文中首次公开。Transformer模型的核心思想是利用自注意力机制来捕捉序列中的依赖关系…

MySQL 的表约束详解

在数据库设计中,约束(Constraints)是确保数据完整性和一致性的关键工具。MySQL 作为流行的关系型数据库管理系统,提供了多种约束类型来维护数据的准确性和可靠性。本文将详细探讨 MySQL 的各种表约束,包括它们的定义、…