关于1panel面板中OpenResty配置证书的格式问题探究

文章目录

  • 说明
  • ssl证书格式CRT&PEM
  • 转换方法
    • linux系统
    • win系统
  • 问题: ASN.1 编码错误
  • 补充:DER和pem编码格式

说明

  • armbian中使用OpenResty进行反向代理,配置ssl证书,但是由于和官网申请的证书内容格式内容不太一样,所以本文就此问题进行ssl证书格式转化的方进行记录,希望能够帮助到其他人!
  • 例如:在华为云申请的ssl证书中nginx部分的证书分为key和crt格式的私钥,但是OpenResty要求的私钥是PEM格式

ssl证书格式CRT&PEM

  • CRT(Certificate)格式和PEM(Privacy Enhanced Mail)格式本质上是相同的,只是文件扩展名不同。
  • CRT文件通常包含证书,而PEM文件是一种通用的编码格式,可以包含证书、私钥等。

转换方法

linux系统

  1. 可以将其内容复制到一个新的文本文件,并将该文件保存为以.pem为扩展名的文件。这样,你就将CRT格式转换为PEM格式
  2. 在Linux或类Unix系统上,还可以使用以下命令将CRT转换为PEM:
    openssl x509 -in your_certificate.crt -out your_certificate.pem -outform PEM
    
  • 执行命令会修改私钥的内容?
    • 执行上述命令不会修改原始的证书文件(your_certificate.crt)。该命令的目的是将输入的CRT格式的证书文件(your_certificate.crt)转换为PEM格式,并将转换后的内容输出到一个新的PEM文件(your_certificate.pem)中。
    • 原始的CRT文件(your_certificate.crt)将保持不变,而PEM文件(your_certificate.pem)将包含与CRT文件相同的证书信息,只是以PEM格式进行编码。

win系统

  1. 安装 OpenSSL for Windows:
    • 从 OpenSSL 的官方网站下载 Windows 版本的 OpenSSL。将 OpenSSL 添加到系统的 PATH 环境变量中.
  2. 打开命令提示符:在 Windows 上按下 Win + R,输入 cmd 并按回车键打开命令提示符窗口
  3. 转换证书格式
    openssl x509 -inform der -in your_certificate.crt -out your_certificate.pem -outform PEM
    

  • 在 Windows 上,certutil 是一个用于处理证书和证书服务的命令行实用程序。
  1. 查看证书信息:
    certutil -dump your_certificate.crt
    
  2. 转换证书格式:
    certutil -encode your_certificate.crt your_certificate.pem
    
  3. 导入证书:
    certutil -addstore My your_certificate.crt
    
  4. 导出证书:
    certutil -exportpfx -p password -f -privatekey your_certificate_thumbprint.pfx
    
  5. 删除证书:
    certutil -delstore My your_certificate_thumbprint
    

问题: ASN.1 编码错误

root@armbian:/home# openssl x509 -inform der -in server.crt -out server.pem -outform PEM
unable to load certificate
548506843632:error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag:../crypto/asn1/tasn_dec.c:1149:
548506843632:error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error:../crypto/asn1/tasn_dec.c:309:Type=X509
  • 是由于证书文件不符合预期的 DER 编码格式导致的
  • 证书文件是 DER 编码格式:openssl x509 -inform der 命令用于解析 DER 编码的证书。确保 server.crt 文件确实是 DER 编码格式的证书。如果证书是 PEM 编码的,应该使用 -inform PEM 而不是 -inform der
openssl x509 -inform PEM -in server.crt -out server.pem -outform PEM

补充:DER和pem编码格式

  • DER(Distinguished Encoding Rules)和 PEM(Privacy-Enhanced Mail)都是用于表示 X.509 数字证书的不同编码格式。
  1. DER 编码格式:
    • Binary Format: DER 是一种二进制编码格式,以二进制形式表示数据。它通常用于在计算机系统之间以二进制形式传输和存储数据。
    • ASN.1 结构: DER 使用 ASN.1(Abstract Syntax Notation One)[一种用于描述数据结构的标准化表示法]来定义数据结构。
    • 无格式化: DER 编码的证书是无格式化的,没有包含任何可读性更强的字符。
    • 文件扩展名: DER 编码的证书通常使用 .der 或 .cer 作为文件扩展名。
  • 示例:
    MIIB0TCCAXmgAwIBAgIJAOD1COWyEJVOMA0GCSqGSIb3DQEBCwUAMBMxETAPBgNV
    BAMMCG15X2NlcnQwHhcNMjAwNTA0MTk1NjI1WhcNMjEwNTA0MTk1NjI1WjAXMRUw
    
  1. PEM 编码格式:
    • Base64 格式: PEM 使用 Base64 编码将二进制数据转换为可打印的 ASCII 字符串。这使得 PEM 格式在文本环境中更易于处理和传输。
    • 包含边界标识: PEM 编码的证书包含了边界标识,如 “-----BEGIN CERTIFICATE-----” 和 “-----END CERTIFICATE-----”,用于标识 PEM 数据的起始和结束。
    • 可读性更强: 由于使用了 Base64 编码,PEM 编码的证书相对于 DER 编码来说更具可读性。
    • 文件扩展名: PEM 编码的证书通常使用 .pem、.crt、.cer 或 .key 作为文件扩展名。
  • 示例:

    -----BEGIN CERTIFICATE-----
    MIIB0TCCAXmgAwIBAgIJAOD1COWyEJVOMA0GCSqGSIb3DQEBCwUAMBMxETAPBgNV
    BAMMCG15X2NlcnQwHhcNMjAwNTA0MTk1NjI1WhcNMjEwNTA0MTk1NjI1WjAXMRUw
    ...
    -----END CERTIFICATE-----
    
  • 总体而言,DER 和 PEM 都用于表示相同的 X.509 数字证书,只是它们在数据的表示和传输上有所不同。PEM 格式在实际应用中更为常见,因为它兼具二进制数据的安全性和 ASCII 可读性。

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

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

相关文章

深入浅出理解kafka

1.Kafka简介 Kafka 本质上是一个 MQ(Message Queue),使用消息队列的优点: 解耦:允许独立的扩展或修改队列两边的处理过程。可恢复性:即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系…

利用 FormData 实现文件上传、监控网路速度和上传进度(前端原生,后端 koa)

利用 FormData 实现文件上传 基础功能:上传文件 演示如下: 概括流程: 前端:把文件数据获取并 append 到 FormData 对象中后端:通过 ctx.request.files 对象拿到二进制数据,获得 node 暂存的文件路径 前端…

编程语言中常量(Constant)简介

编程语言中常量(Constant)简介 编程语言中,常量(Constant)是程序中固定不变的值,它们在定义后不能被修改。“不能被修改”意味着在常量的生命周期内,它的值是不可变的,你不能再给它赋…

【latex笔记】双栏格式下插入单栏、双栏格式图片

双栏格式下插入单栏、双栏格式图片 1.缘起multicols2.双栏格式 插入单栏图片3.双栏格式 插入双栏图片 1.缘起multicols 插入双栏格式图片问题被困扰了有很长一段时间,查看网络资源也一直没找到解决方法,今天查看Latex官方文档,才发现因为mul…

搜索引擎高级用法总结: 谷歌、百度、必应

搜索引擎高级用法总结: 谷歌、百度、必应 google search 基本搜索 逻辑与:and逻辑或: or逻辑非: -完整匹配:“关键词”通配符:* ?高级搜索 intext:后台登录 将只返回正文中包含 后台登录 的网页 intitle intitle:后台登录 将只返回标题中包含 后台登录 的网页,intitle…

探索图像生成中的生成对抗网络 (GAN) 世界

一、介绍 生成对抗网络(GAN)的出现标志着人工智能领域的一个重要里程碑,特别是在图像生成领域。GAN 由 Ian Goodfellow 和他的同事于 2014 年提出,代表了机器学习中的一种新颖方法,展示了生成高度逼真和多样化图像的能…

基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(一)——创建Glue

1 通过Athena查询s3中的数据 此实验使用s3作为数据源 ETL: E extract 输入 T transform 转换 L load 输出 大纲 1 通过Athena查询s3中的数据1.1 架构图1.2 创建Glue数据库1.3 创建爬网程序1.4 创建表1.4.1 爬网程序创建表1.4.2 手动创建表 1…

剑指 Offer(第2版)面试题 16:数值的整数次方

剑指 Offer(第2版)面试题 16:数值的整数次方 剑指 Offer(第2版)面试题 16:数值的整数次方解法1:快速幂 - 递归写法解法2:快速幂 - 非递归写法 剑指 Offer(第2版&#xff…

【STM32】STM32学习笔记-GPIO输出(05)

00. 目录 文章目录 00. 目录01. GPIO简介02. GPIO基本结构03. GPIO位结构04. GPIO模式4.1 输入浮空4.2 输入上拉4.3 输入下拉4.4 模拟输入4.5 开漏输出4.6 开漏复用功能4.7 推挽式输出4.8 推挽式复用功能 05. LED和蜂鸣器简介06. 面包板07. 附录 01. GPIO简介 GPIO&#xff08…

简单总结顺序表和链表的区别和联系

顺序表: 优点: 空间连续,支持随机访问 缺点: 1. 中间或前面部分的插入删除时间复杂度O(N) 2. 增容的代价较大(以二倍的容量增溶) 链表(带头双向循环): …

ES 快照到 S3 并从 Windows 共享目录恢复(qbit)

前言 业务需要将 Elasticsearch 快照到 AWS S3,再将快照拷贝到 Windows 系统,并恢复到 Elasticsearch。如下图所示: 环境 Elasticsearch 7.10.1 Windows Server 2019 Ubuntu 20.04 (ES 宿主) ES 集群1 安装 S3 插…

GPIO的使用--点亮外接小灯泡--开关控制

目录 一、确定引脚接线模式 接线时注意以下几点: 二、外接小灯泡引脚连接(以F12引脚为例) 1.正极接GPIOF3.3v电压引脚、负极接F12 2.正极接GPIOF3.3v电压引脚、负极接F12 三、问题检查 一、确定引脚接线模式 小灯泡有两级:正极、负极,…

DevOps搭建(二)-VMware安装虚拟机详细步骤

1、下载Centos镜像 官方下载地址: Download 这里我们使用Centos7镜像 下载地址: Index of /centos/7.9.2009/isos/x86_64/ 2、设置固定IP 2.1、VMware的配置 首先打开编辑里面的 虚拟网络编辑器,如图: 进入更改设置之后,进行后面的操作,

pytorch 数据预加载

1. Abstract 本文介绍一个工具 PreDataLoader,它包装 torch.utils.data.DataLoader,接收该类的一个实例 loader,启动一个线程 t,创建一个队列 q,t 将 loader 中的数据预加载到队列 q 中, 以在模型计算时也能启动启动数…

pg数据库备库为什么要在线恢复

在线恢复是 PostgreSQL 和 pgpool-II 环境中一种重要的功能,它允许你在不中断服务的情况下,重新同步或恢复一个陈旧或者损坏的备库(副本)。在线恢复特别重要,因为它能够保持高可用性和最小化停机时间。这在大型数据库系…

3.5毫米音频连接器接线方式

3.5毫米音频连接器接线方式 耳机插头麦克风插头 绘制电路图注意事项 3.5毫米音频连接器分为单声道开关型和无开关型如下图: sleeve(套筒) tip(尖端) ring(环) 耳机插头 麦克风插头 绘制电路图…

【重点】【滑动窗口】76.最小覆盖子串

题目 思路参考《算法小抄》 class Solution {public String minWindow(String s, String t) {int startIndex -1, endIndex s.length(), valid 0, left 0, right 0;char[] sArray s.toCharArray();char[] tArray t.toCharArray();int[] need new int[256];int[] windo…

【软考S01计算机系统知识】E01 中央处理单元

E01 中央处理单元 计算机系统硬件基本组成中央处理单元组成功能 多核 CPU 计算机系统硬件基本组成 计算机系统由硬件和软件组成,基本硬件系统由 运算器、控制器、存储器、输入设备 和 输出设备 5大部件组成; 中央处理单元: 运算器、控制器等…

el-table分页时多选数据的保存和回显

大致思路: 把所有选择的数据全部存到一个大数组中,切页的时候匹配原数据利用ref节点的.toggleRowSelection方法进行回显 具体步骤: 1、勾选和全选时需要判断是选中还是取消,然后更新大数组数据。 2、分页获取新数据之后匹配当…

2023Q4 私有化版本发布,和鲸 ModelWhale 持续赋能大科研、高校教改的 AI for Science

作为数据科学多人协同平台,和鲸 ModelWhale 从一而终地为各级用户提供完备而周全的解决方案,覆盖数据研究、算法探索、模型调优、Python 案例教学等多个场景。特别地,如果对研究分析平台有更高的安全合规要求、希望兼容原有业务系统&#xff…