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.pswp.cn/bicheng/18375.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18375.shtml
英文地址,請注明出處:http://en.pswp.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 的各種表約束,包括它們的定義、…