如何使用 openssl 创建包含 CRL 分发点的证书?

2024-01-02

我在使用 openssl 创建包含用于测试的 crl 分发点的 x509 证书时遇到问题。

我检查了文档并找到了用于此目的的配置设置 crlDistributionPoints。不幸的是,openssl 始终生成 x509 版本 1 证书,而不使用 crl 分发点生成版本 3 证书。 我确信我的命令或配置有问题,但仔细阅读文档并尝试配置并没有帮助。考虑配置文件中的其他设置,因此我确信 openssl 使用该文件本身。

我正在使用命令

openssl x509 -req -in $NAME.csr -out certs/$NAME.pem -days 3650 -CAcreateserial -CA cacert.pem -CAkey private/cakey.pem -CAserial serial

我正在使用以下配置文件:

[ ca ]
default_ca              = CA_default

[ CA_default ]

dir                     = /home/ca
database                = $dir/index.txt
new_certs_dir           = $dir/newcerts

certificate             = $dir/cacert.pem
serial                  = $dir/serial
private_key             = $dir/private/cakey.pem
RANDFILE                = $dir/private/.rand

default_days            = 3650
default_crl_days        = 30
default_md              = md5

policy                  = policy_any
email_in_dn             = no

name_opt                = ca_default
cert_opt                = ca_default
copy_extensions         = none

x509_extensions         = extensions_section

[ extensions_section ]

crlDistributionPoints=URI:http://example.com/crl.pem

[ policy_any ]
countryName             = supplied
stateOrProvinceName     = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

有任何想法吗?


openssl x509不会读取您在配置文件中指定的扩展配置。

您可以获得crlDistributionPoints(至少)通过以下两种方式进入您的证书:

  1. Use openssl ca而不是x509签署请求。经过-config如果您的配置不在默认位置,则根据需要进行设置。如果您省略以开头的选项,则可以使用您提供的大多数命令-CA

    openssl ca -in $NAME.csr -out certs/$NAME.pem -days 3650

  2. 使用您在问题中提供的命令,但首先创建一个包含 v3 扩展的文件(即mycrl.cnf);添加选项-extfile mycrl.cnf接到您的电话openssl x509

    openssl x509 -req -in $NAME.csr -out certs/$NAME.pem -days 3650 \
      -CAcreateserial -CA cacert.pem -CAkey private/cakey.pem \
      -CAserial serial -extfile mycrl.cnf`
    

    Where mycrl.cnf包含以下内容:

    crlDistributionPoints=URI:http://example.com/crl.pem

openssl ca该命令可能更适合您想要执行的操作,因为您会发现大多数示例都依赖于该命令,利用 openssl.cnf 中的各种设置来实现 v3 扩展。

旁白:是的不宜 http://www.kb.cert.org/vuls/id/836068/在证书中使用 MD5 消息摘要。

以前 SHA1 是 MD5 的建议替代品,但现在它也已被弃用。您可以指定请求和签名操作中使用的消息摘要,并且可以使用以下命令列出支持的消息摘要openssl list-message-digest-commands.

例如,您可以在使用 SHA256 签署请求时使用 SHA256-md sha256选项openssl ca(或设置default_md=sha256在你的[CA_default]配置部分)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 openssl 创建包含 CRL 分发点的证书? 的相关文章

随机推荐

  • 我应该在哪里限制我的结果?

    我所做的是创建一个 XML 文件 其中包含我需要在文档上执行的数千个搜索词的列表 然后 我从一组示例搜索词创建了此查询作为测试 以针对测试文档执行 并使用实际文档中的一些示例 let keywords best clients Very 2
  • 如何将二维数组传递给C++中的函数

    我试图将数组 2d 作为参数传递给函数 我有一个代码如下 int main float T 100 100 void set T float T void set T float T1 for int i 0 i lt 90 i for i
  • Rake 构建在不正确的上下文中运行

    我有一个 gem 它的存在只是为了将多个引擎收集在一起以便于实现 以及为所有包含的引擎提供一些实用方法 其中一种实用方法是 rake 任务 用于发布所有收集的引擎的新版本 我的问题是 当我运行应该在收集的引擎之一的上下文中执行的代码时 除了
  • 为什么 .NET 为我的应用程序保留这么多内存?

    当我运行我的应用程序时 在探查器中我看到它使用了大约 80MB 的内存 总提交字节数 性能计数器 但是当我查看分配的内存大小时 它超过了400MB 所以我的问题是 为什么 NET 为我的应用程序保留这么多内存 这是正常的吗 你应该读记忆之谜
  • 通过 std::ifstream 从字符串中获取每个值

    我尝试使用ifstream使用 while 循环来获取每个值 但是 当我尝试时 什么也没有发生 为什么 std string line std getline cin line std ifstream stream line while
  • OS X 中的 PHP 系统调用和 $PATH

    我试图让 PHP 在 OS X 上进行系统调用 但是 它似乎无法找到系统路径中包含的任何内容 当我跑步时 putenv PATH SERVER PATH usr local bin 就在系统调用之前 它起作用了 这不是一个实用的解决方案 因
  • Keras 1d 卷积层如何处理词嵌入 - 文本分类问题? (过滤器、内核大小和所有超参数)

    我目前正在使用 Keras 开发一个文本分类工具 它可以工作 它工作得很好 我的验证准确度高达 98 7 但我无法理解 1D 卷积层到底如何处理文本数据 我应该使用什么超参数 我有以下句子 输入数据 句子中的最大字数 951 如果少于 添加
  • OdbcCommand.使用表名进行参数化

    我在对 C 中的 odbc 驱动程序的 Odbc 连接执行参数化 sql 查询时遇到问题 列名和表名可以通过 Web GUI 进行配置 所以我希望它免受注入 using OdbcCommand command connection Crea
  • MVC 中的 CMS 路由

    我正在 php 中创建自己的 MVC 框架 作为学习更高级编程的一种手段 我已经启动并运行了框架 但是我对当前的路由方法有一个问题 我希望该框架支持后端 cms 以补充前端网站 问题是我的路由结构的工作方式如下 mywebsite com
  • 匿名类型中的特殊字符

    我想创建一个变量名称中带有特殊字符的匿名类型 例如我有这个 new status Active 我想要类似的东西 new status Active exists true 这最终会序列化为 JSON 所以我知道我可以使用 JObject
  • 如何使用 SXSSF 写入现有文件?

    我有一个 xlsx 文件 其中包含多个包含不同数据的工作表 所有sheet中一张sheet需要容纳近10万行数据 数据需要使用java配合poi编写 这对于 SXSSFWorkbook 来说似乎非常快速和简单 我只能在内存中保留 100 行
  • where 子句中的多个“in”语句需要相互匹配

    我有一个很长的查询 本质上是以下查询的扩展 update property lease period set scca uplift 110 scca notes code 21006 where suite id CCBG08 and l
  • Laravel 服务提供者和服务容器

    在 Laravel 中访问查询 我们使用DB facades DB select 来自阿兰斯托姆网站http alanstorm com binding objects as laravel services http alanstorm
  • 从日志文件中提取特定行的数据

    我希望从长日志文件中的表中提取并打印特定行 它看起来像这样 XSCALE VERSION July 4 2012 4 Jun 2013 Author Wolfgang Kabsch Copy licensed until 30 Jun 20
  • Leaflet.js:WMS 图层样式

    我有一个 Leaflet javascript Web 应用程序 它使用 WMS 来调用 GeoServer 返回的对象是Geometry加上属性 虽然几何图形 多边形 可以像美国的县一样渲染良好 但我需要根据县人口使县图层显示不同的颜色
  • 使用具有严格内容安全策略的 Angular Material

    我正在使用 Angular 6 和 Angular Material 6 开发企业应用程序 现在我必须为一个具有非常严格的 CSP 的新客户构建项目 那就是 内容安全策略 default src self 该政策无法修改 我搜索了以前的答案
  • 异步/等待 Lambda

    我有一个奇怪的问题 结合 async await 使其工作 我创建了一个小程序 它基本上应该处理每个操作的 try catch internal static void HandledAction Action action Info in
  • 将 arrayList 数据加载到 JTable 中

    我正在尝试通过名为的方法设置项目FootballClub到目前为止还好 但后来我从中创建了一个 arrayList 但不知何故找不到一种方法将此信息存储到 JTable 中 问题是我找不到设置固定行数的方法 这是我的代码 起始联赛类别 im
  • 如何使用 Django Usurena“mugshot”模板变量

    我正在尝试在 Django 网站中使用 Userena 但我似乎不知道如何使用模板标签来显示照片 我尝试了以下方法来输出图像标签中的 URL img src and img src 有人有一些见解吗 Thanks 基于 alican 的答案
  • 如何使用 openssl 创建包含 CRL 分发点的证书?

    我在使用 openssl 创建包含用于测试的 crl 分发点的 x509 证书时遇到问题 我检查了文档并找到了用于此目的的配置设置 crlDistributionPoints 不幸的是 openssl 始终生成 x509 版本 1 证书 而