- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 DirName 类型的 SubjectAltName 生成自签名证书。其他类型的 SubjectAltName(如 DNS)可以正常工作,但 DirName 将无法正常工作。重现相当简单的代码(python 3.8.5)
import string
from OpenSSL import crypto
def _create_csr():
key = crypto.PKey()
key.generate_key(crypto.TYPE_RSA, 2048)
csr = crypto.X509Req()
csr.set_pubkey(key)
works = "DNS:abc.xyz"
fails = "dirName:MyGeneratedCert"
csr.add_extensions([crypto.X509Extension(b"subjectAltName", False, fails.encode("ascii"))])
csr.sign(key, "sha256")
if __name__=="__main__":
_create_csr()
我收到的异常如下
Traceback (most recent call last):
File "tests/createcert.py", line 16, in <module>
_create_csr()
File "tests/createcert.py", line 12, in _create_csr
csr.add_extensions([crypto.X509Extension(b"subjectAltName", False, fails.encode("ascii"))])
File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 779, in __init__
_raise_current_error()
File "/usr/lib/python3/dist-packages/OpenSSL/_util.py", line 54, in exception_from_error_queue
raise exception_type(errors)
OpenSSL.crypto.Error: [('X509 V3 routines', 'X509V3_get_section', 'operation not defined'), ('X509 V3 routines', 'do_dirname', 'section not found'), ('X509 V3 routines', 'a2i_GENERAL_NAME', 'dirname error'), ('X509 V3 routines', 'X509V3_EXT_nconf', 'error in extension')]
该调用正在进入 OpenSSL 的 do_dirname 函数(堆栈跟踪)。我假设该值没有以正确的方式传递,但我不明白如何根据需要传递它。
最佳答案
您不能通过 python,因为 dirName 引用了配置数据库中的值,但是 pyOpenSSL 不提供创建配置数据库的接口(interface)。
背景:dirName 引用了数据库中的一个部分,它可能是一个配置文件。引用 x509v3_config 工具,例如 (https://github.com/openssl/openssl/blob/master/doc/man5/x509v3_config.pod ),您可以在其中使用配置文件:
[extensions]
subjectAltName = dirName:dir_sect
[dir_sect]
C = UK
O = My Org
OU = My Unit
CN = My Name
注意
dirName
只是指配置数据库中的不同部分。
# We have no configuration database - but perhaps we should (some
# extensions may require it).
关于python - 如何使用 OpenSSL 使用 subjectAltName 和 dirName 生成自签名证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64921662/
在 Win7 上使用 ruby 2.0.0p481 (2014-05-08) [x64-mingw32] 在一个目录中(准确地说是d:\download\ruby)我有两个文件——calling.
我总是用 tar czf file.tar.gz dirname而不是 tar -czf file.tar.gz dirname (没有 - )因为更快 我知道......从文档中,我所做的是错误的。
我是 Django 项目的初学者。Django 项目的 settings.py 文件包含这两行: BASE_DIR = os.path.dirname(os.path.dirname(os.path.
我正在尝试实现一个 perl 脚本,我需要获取我执行的文件的目录。 例如,如果我正在执行的文件位于 C:\Scripts\MyScript.pl我想得到 C:\Scripts . 我试过 dirnam
我有一个名为 abc.sh 的简单脚本,如下所示,用于设置环境变量 #!/bin/bash sourcePath () { filename=`basename $0` current_dir="./
我有很多这样的文件: ./1/wwuhw.mp3 ./2/nweiewe.mp3 ./3/iwqjoiw.mp3 ./4/ncionw.MP3 ./5/joiwqfm.wmv ./6/jqoifiew
考虑以下经典问题案例:
__FILE__表示当前所在文件的绝对路径包括文件名,dirname(__FILE__)表示当前文件的绝对路径,basename(__FILE__)表示当前文件的文件名称,dirname(__FIL
__FILE__表示当前所在文件的绝对路径包括文件名,dirname(__FILE__)表示当前文件的绝对路径,basename(__FILE__)表示当前文件的文件名称,dirname(__FIL
我的基本目录中有一个配置文件,我正在尝试确定用于文件包含的目录的绝对路径。但是 Windows 在路径中使用反斜杠。 define( 'ABSOLUTE_PATH', dirname(__FILE__
编写脚本来优化我的网络图片。名称中包含空格的文件名和目录有问题。 这是我所拥有的: read -p "Enter full path from root (/) to your site... exa
dirname() 真的很糟糕,因为它修改了参数,因此它需要原始字符串的另一个难看的副本。所以请不要使用 dirname()。 有没有类似的功能,但又可以安全使用? 最佳答案 编辑:修复我愚蠢时的可怕
我想知道为什么以下代码在修改作为 dirname() 结果的字符串文字时不会抛出段错误,但在修改通常创建的字符串文字时会抛出段错误: #include #include #include #de
我想从 .bat 文件中获取文件的父目录。因此,如果变量设置为 "C:\MyDir\MyFile.txt",我想获取 "C:\MyDir"。换句话说,相当于典型 UNIX 环境中的 dirname()
看一下代码 $link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; echo dirname(dirname($link)); 问题 1.
我使用 Ruby 1.9.3 编写了一些用于系统管理的小 Ruby 脚本。在我使用的一个脚本中: File.dirname(__FILE__) 获取脚本文件的目录。这将返回一个相对路径,但是当我从第二
dirname(dirname(_FILE_)); 假设__FILE__为 /home/web/config/config.php 上面的方法输出为 /home/web dirname(
PHP 常量 dirname(__file__) __FILE__ :被称为PHP魔术常量 ,返回当前执行PHP脚本的完整路径和文件名,包含一个绝对路径 1)dirname(__FILE__)
我正在练习用 php 编写代码并学习 php 语法。我对以下功能有点困惑: function __construct() { require_once dirname(__FILE__) .
目前我不明白,为什么 python os.path.dirname 的行为如此。 假设我有以下脚本: # Not part of the script, just for the current sa
我是一名优秀的程序员,十分优秀!