gpt4 book ai didi

OpenSSL 作为 CA,无需触及 certs/crl/index/etc 环境

转载 作者:行者123 更新时间:2023-12-02 06:51:35 24 4
gpt4 key购买 nike

我认为我有正确的 OpenSSL 命令来签署证书,但我陷入了困境,而且我发现的教程使用了不同的参数格式(我使用的是 OpenSSL 0.9.8o 01 Jun 2010)。

openssl ca -cert cert.pem -keyfile key.pem

(私钥未加密,CSR 位于标准输入上。)

它给出了这个错误

Using configuration from /usr/lib/ssl/openssl.cnf
./demoCA/index.txt: No such file or directory
unable to open './demoCA/index.txt'

查看该配置文件:

[ ca ]
default_ca = CA_default # The default ca section

[ CA_default ]
dir = ./demoCA # Where everything is kept
certs = $dir/certs # Where the issued certs are kepp
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.

我没有任何这样的设置。 我不想进行任何设置。

这是严格必要的,还是有“不打扰”选项?

我尝试创建空目录和文件,但我陷入了困境。我真正想要的是像上面这样的命令能够工作,输出在标准输出上,而不需要触及文件系统上的任何东西。

最佳答案

我不知道有什么“不用打扰”的选项,但以下是如何设置快速演示 CA:

#!/bin/bash
CAROOT=/path/to/ca
mkdir -p ${CAROOT}/ca.db.certs # Signed certificates storage
touch ${CAROOT}/ca.db.index # Index of signed certificates
echo 01 > ${CAROOT}/ca.db.serial # Next (sequential) serial number

# Configuration
cat>${CAROOT}/ca.conf<<'EOF'
[ ca ]
default_ca = ca_default

[ ca_default ]
dir = REPLACE_LATER
certs = $dir
new_certs_dir = $dir/ca.db.certs
database = $dir/ca.db.index
serial = $dir/ca.db.serial
RANDFILE = $dir/ca.db.rand
certificate = $dir/ca.crt
private_key = $dir/ca.key
default_days = 365
default_crl_days = 30
default_md = md5
preserve = no
policy = generic_policy
[ generic_policy ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
EOF

sed -i "s|REPLACE_LATER|${CAROOT}|" ${CAROOT}/ca.conf

cd ${CAROOT}

# Generate CA private key
openssl genrsa -out ca.key 1024

# Create Certificate Signing Request
openssl req -new -key ca.key \
-out ca.csr

# Create self-signed certificate
openssl x509 -req -days 10000 \
-in ca.csr \
-out ca.crt \
-signkey ca.key

现在您可以生成并签署 key :

# Create private/public key pair
openssl genrsa -out server.key 1024

# Create Certificate Signing Request
openssl req -new -key server.key \
-out server.csr

# Sign key
openssl ca -config ${CAROOT}/ca.conf \
-in server.csr \
-cert ${CAROOT}/ca.crt \
-keyfile ${CAROOT}/ca.key \
-out server.crt

关于OpenSSL 作为 CA,无需触及 certs/crl/index/etc 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com