问题如下:

Check that the request matches the signature
Signature ok
The countryName field is different between
CA certificate (CN) and the request (CN)

可以看出,CA和REQ的DN内容是一致的,依旧报错。其实是编码的问题。

使用以下指令看编码格式:

openssl asn1parse -in /etc/pki/CA/cacert.pem

openssl asn1parse -in server01.csr

请求文件的countryName是UTF8STRING,CA证书是PRINTABLESTRING。

在openssl.cnf配置文件中有个字符编码设置string_mask=utf8only。虽然要求openssl ca证书字段都为utf8,但实际上DN的countryName仍然为PRINTABLESTRING。

# This sets a mask for permitted string types. There are several options.
# default: PrintableString, T61String, BMPString.
# pkix   : PrintableString, BMPString (PKIX recommendation before 2004)
# utf8only: only UTF8Strings (PKIX recommendation after 2004).
# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
# MASK:XXXX a literal mask value.
# WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings.
string_mask = utf8only

查阅了很多资料,都不太好处理或者无效。提供两个简单方法,1、修改签发证书的匹配策略来解决该问题。

[ policy_match ]
countryName             = supplied
stateOrProvinceName     = match
organizationName        = match
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

即,将countryName原来的match修改supplied,绕过匹配。

2、修改csr文件DN域的格式为V_ASN1_PRINTABLESTRING

    X509_NAME_add_entry_by_txt(x509_name, "CN", V_ASN1_UTF8STRING, (const unsigned char*)pbCN, -1, -1, 0);X509_NAME_add_entry_by_txt(x509_name, "OU", V_ASN1_UTF8STRING, (const unsigned char*)pbOU, -1, -1, 0);X509_NAME_add_entry_by_txt(x509_name, "O", V_ASN1_UTF8STRING, (const unsigned char*)pbO, -1, -1, 0);X509_NAME_add_entry_by_txt(x509_name, "L", V_ASN1_UTF8STRING, (const unsigned char*)pbL, -1, -1, 0);X509_NAME_add_entry_by_txt(x509_name, "ST", V_ASN1_UTF8STRING, (const unsigned char*)pbST, -1, -1, 0);X509_NAME_add_entry_by_txt(x509_name, "C", V_ASN1_PRINTABLESTRING, (const unsigned char*)pbC, -1, -1, 0);

OpenSSL签发证书时编码UTF8STRING PRINTABLESTRING不匹配相关推荐

  1. 用openssl签发证书

    导言: 有时候,使用SSL协议是自己内部服务器使用的,这时可以不必去找第三方权威的CA机构做证书,可以做自签证书 使用openssl签发证书分为四个步骤:生成密钥对.生成证书请求.创建一个root C ...

  2. OpenSSL 制作证书时出现的错误的解决办法

    在制作证书的过程中遇到的问题及解决办法: 出现:I am unable to access the ./demoCA/newcerts directory        ./demoCA/newcer ...

  3. 在openssl申请证书时遇到的问题解决

    关于 can't open config file: z:/strawberry_libs/build/2013Q3/ssl/openssl.cnf问题解决 一开始运行openssl的时候就产生一条W ...

  4. 使用OpenSSL签发证书

    安装OpenSSL OpenSSL下载地址:http://slproweb.com/products/Win32OpenSSL.html 安装完以后一路点下去即可. 配置OpenSSL 配置Path ...

  5. 使用OpenSSL生成/签发证书的原理、流程与示例

    文章目录 1 生成证书的步骤与原理 2 标准的CA签发流程 2.1 创建私钥(.key) 2.2 基于私钥创建证书签名请求(.csr) 2.3 (可选)直接同时生成私钥和证书签名请求 2.4 将证书申 ...

  6. Linux 使用openssl ca方式签发证书

    前言 Linux 使用openssl x509方式签发证书(推荐用这种方式):https://blog.csdn.net/QianLiStudent/article/details/109818208 ...

  7. openssl 自建CA签发证书 网站https的ssl通信

    <<COMMENT X509 文件扩展名 首先我们要理解文件的扩展名代表什么.DER.PEM.CRT和CER这些扩展名经常令人困惑. 很多人错误地认为这些扩展名可以互相代替.尽管的确有时候 ...

  8. OpenSSL生成root CA及签发证书

    一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备的工具套件,用以支持SSL/TLS 协议的实现.官网:https://www.openss ...

  9. 使用Openssl签发SSL证书

    本文主要记述在Linux系统上使用Openssl创建SSL证书的流程,作为个人学习笔记.自签名证书分为自签名私有证书和自签名CA证书两种.自签名私有证书无法被吊销,自签名CA证书可以被吊销. 什么是o ...

最新文章

  1. html5赛车小游戏,html5公路赛车小游戏
  2. linux安装mysql、卸载mysql、设置mysql
  3. 有趣的js匿名函数写法(function嵌套)
  4. 前端学习(1955)vue之电商管理系统电商系统之完成添加分类功能
  5. python编程遍历_Python字典遍历操作实例小结
  6. 基于matlab 系统仿真学报,基于MATLAB/Simulink的混合动力汽车正向仿真软件的开发...
  7. SaCa DataViz 企业版 | 高性能大数据分析引擎
  8. JVM调优大全及实战总结
  9. 迅雷/快车/旋风地址转换器
  10. java中整数和字符串间的转换方法
  11. UVA - 11520 Fill the Square
  12. 孙鑫VC学习笔记:第十八讲 ActiveX 控件
  13. xml 操作组件(NewLife.XCode)
  14. 2018年国内十大技术突破:22纳米光刻机、大型航天器回收
  15. 如何通过dba_hist_active_sess_history分析数据库历史性能问题
  16. Visual Studio2019配置备忘
  17. 注塑行业APS解决方案
  18. 【thinkphp5操作redis系列教程】集合类型之sCard,sSize
  19. HTML中背景透明有阴影,透明PNG在网页有阴影的解决方法
  20. jena 查询 java_使用SPARQL和Jena查询DBpedia

热门文章

  1. Response.Redirect ,Server.Excute和Server.Transfer区别详解
  2. 常用的开始→运行→输入命令集锦
  3. [导入]ASP.NET 2.0中Page事件的执行顺序
  4. 什么是非集计模型_集计与非集计模型的关系
  5. linux hlist,linux内核V2.6.11学习笔记(2)--list和hlist
  6. java 03_Java基础03—流程控制
  7. linux语言的说明顺序有哪些,(linux常用头文件详解.doc
  8. 2021高考成绩查询内蒙时间,2021内蒙古高考成绩什么时候几点可以查
  9. wordpress后台添加子菜单 add_submenu_page()
  10. js上传文件;input上传文件;