从 CSR 检索发出的证书
retrieve an emitted certificate from the CSR
在证书颁发机构的上下文中,我正在尝试从 CA index.txt
检索有效的实时证书(如果有的话),以便在从初始 CSR 更新它之前将其撤销。
在我的 index.txt
中,我正在查找的行是
V 200605120159Z D486D9E32C4DE4BA unknown /C=LU/ST=Luxembourg/L=Luxembourg/O=My Org/OU=My Unit/CN=myhost.fqdn/emailAddress=ca@initech.com
我可以通过
在 CSR 中获取主题
openssl req -noout -subject -in sub/csr/myhost.csr.pem
那得到
subject=C = LU, ST = Luxembourg, L = Luxembourg, O = My Org, OU = My Unit, emailAddress = ca@initech.com, CN = myhost.fqdn
我可以翻译 sed
openssl req -noout -subject -in sub/csr/myhost.csr.pem \
| sed -e 's/subject=/\//' -e 's/ = /=/g' -e 's/, /\//g'
但是结果
/C=LU/ST=Luxembourg/L=Luxembourg/O=My Org/OU=My Unit/emailAddress=ca@initech.com/CN=myhost.fqdn
与 index.txt
中的行不匹配,因为字段的顺序不同。
是否可以将证书的主题与CSR的主题进行比较?
如果您想固定 CSR 中字段的顺序,您可以尝试使用 awk
:
openssl req -noout -subject -in sub/csr/myhost.csr.pem | awk -F', ' -v OFS='/' '{sub(/^subject=/,"");gsub(" = ","=");print ,,,,,}'
-F', '
设置输入字段分隔符,-v OFS='/'
设置输出字段分隔符。
第一个 sub
命令删除 subject=
字符串,第二个命令 gsub
压缩 =
字符周围的空格。
然后打印该行。注意第 6 和第 7 字段的反转。
但最好根据openssl配置文件openssl.cnf
固定主题字段的顺序(通常位于/etc/ssl
或/usr/ssl
)在[ req_distinguished_name ]
部分。
在证书颁发机构的上下文中,我正在尝试从 CA index.txt
检索有效的实时证书(如果有的话),以便在从初始 CSR 更新它之前将其撤销。
在我的 index.txt
中,我正在查找的行是
V 200605120159Z D486D9E32C4DE4BA unknown /C=LU/ST=Luxembourg/L=Luxembourg/O=My Org/OU=My Unit/CN=myhost.fqdn/emailAddress=ca@initech.com
我可以通过
在 CSR 中获取主题openssl req -noout -subject -in sub/csr/myhost.csr.pem
那得到
subject=C = LU, ST = Luxembourg, L = Luxembourg, O = My Org, OU = My Unit, emailAddress = ca@initech.com, CN = myhost.fqdn
我可以翻译 sed
openssl req -noout -subject -in sub/csr/myhost.csr.pem \
| sed -e 's/subject=/\//' -e 's/ = /=/g' -e 's/, /\//g'
但是结果
/C=LU/ST=Luxembourg/L=Luxembourg/O=My Org/OU=My Unit/emailAddress=ca@initech.com/CN=myhost.fqdn
与 index.txt
中的行不匹配,因为字段的顺序不同。
是否可以将证书的主题与CSR的主题进行比较?
如果您想固定 CSR 中字段的顺序,您可以尝试使用 awk
:
openssl req -noout -subject -in sub/csr/myhost.csr.pem | awk -F', ' -v OFS='/' '{sub(/^subject=/,"");gsub(" = ","=");print ,,,,,}'
-F', '
设置输入字段分隔符,-v OFS='/'
设置输出字段分隔符。
第一个 sub
命令删除 subject=
字符串,第二个命令 gsub
压缩 =
字符周围的空格。
然后打印该行。注意第 6 和第 7 字段的反转。
但最好根据openssl配置文件openssl.cnf
固定主题字段的顺序(通常位于/etc/ssl
或/usr/ssl
)在[ req_distinguished_name ]
部分。