我发现最接近的答案是使用"grep".
> openssl x509 -text -noout -in cert.pem | grep DNS
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?我只喜欢命令行.
谢谢.
我已经创建了这样的链层次结构.
root-ca ==> signing-ca ==> subordinate-ca ==> server
Run Code Online (Sandbox Code Playgroud)
提到创建链束,最低应该先行.
$ cat server.crt subordinate-ca.crt signing-ca.crt > server.pem
Run Code Online (Sandbox Code Playgroud)
但验证失败了.
$ openssl verify -CAfile root-ca.crt server.pem
error 20 at 0 depth lookup:unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)
但是,如果我改变顺序它似乎工作.
$ cat signing-ca.crt subordinate-ca.crt server.crt > server.pem
$ openssl verify -CAfile root-ca.crt server.pem
server.pem: OK
Run Code Online (Sandbox Code Playgroud)
那么这里的错误是什么?
"猫"之后的链条如下所示.
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
更多信息:根据" http://www.herongyang.com/crypto/openssl_verify_2.html ",我执行以下测试.
$ cat signing-ca.crt subordinate-ca.crt > inter.crt
$ openssl verify -CAfile …Run Code Online (Sandbox Code Playgroud) 我正在使用Net :: LDAP的搜索,返回的条目是这样的.
#<Net::LDAP::Entry:0x7f47a6491c00
@myhash=
{:loginshell=>["/bin/bash"],
:cn=>["M... R..."],
:homedirectory=>["/mnt/home/m..."],
:uid=>["m..."],
:userpassword=>["{CRYPT}$1$3zR/C...$R1"],
...
}>
Run Code Online (Sandbox Code Playgroud)
我试着做以下事情,但失败了.
(1)
e = entry.to_hash
e.has_key? "uid"
Run Code Online (Sandbox Code Playgroud)
(2)
entry.has_key? "uid"
Run Code Online (Sandbox Code Playgroud)
第一个错误说"to_hash"未定义,第二个"has_key"未定义.然后我真的不知道怎么做,基本上我想找到"uid"是否存在,如果是这样的话得到它的对应值.
非常感谢你的提示.
顺便说一句,它只响应"entry.uid",但如果搜索键是以字符串形式提供的,那该怎么办呢?例如,
def get_value(key)
if entry has key
return key's value
end
end
Run Code Online (Sandbox Code Playgroud) 假设PKI层次结构如下所示.
root CA ==> inter-1 CA ==> user-1
\
\======> inter-2 CA ==> user-2
Run Code Online (Sandbox Code Playgroud)
我的问题是:root CA是否还需要定期从其子代下载CRL:inter-1和inter-2?
由于user-1和user-2可以相互认证,如果inter-2撤销了user-2的证书,则inter-2应该让root知道然后传播到inter-1和user-1,对吧?
如果是这样,那似乎很复杂.是否有任何工具可用于管理撤销逻辑?非常感谢.
ssl openssl certificate-revocation ssl-certificate x509certificate
我终于追查了一个错字错误,这与下面的代码类似.但是编译器不应该检测到这个(默认选项)吗?
#include <stdio.h>
int main()
{
int c = c;
return printf("%d\n", c);
}
$ gcc --version
gcc (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3
Run Code Online (Sandbox Code Playgroud) 我们决定是否应将"localhost"(以及类似"127.0.0.1"之类的地址)添加为证书中的主题备用名称之一.一个好处可能是促进本地测试.但是会有任何缺点吗?
我想默认"接受"新证书.我尝试了以下内容.
$ dpkg-reconfigure -f noninteractive ca-certificates
Run Code Online (Sandbox Code Playgroud)
它运行,但不添加CA.
如果不可能,可以直接修改/etc/ca-certificates.conf吗?
感谢您的帮助.
这是关于ruby系统命令检查退出代码的后续问题.我想运行命令,以获取其输出以及退出代码.目前我在代码中使用的是:
rv = `#{cmd} 2>&1`
Run Code Online (Sandbox Code Playgroud)
但这只能捕获输出,并且
rv = system(cmd)
Run Code Online (Sandbox Code Playgroud)
仅捕获退出代码.如何实现两者?
我正在使用getaddrinfo进行与IPv6相关的C项目.我的电脑上的"man getaddrinfo"(uname -a:3.5.0-23)仅表示它是"可重入的".所以我猜它不是线程安全的.
在需要线程安全的情况下,如何处理它?我也检查了UNP,但似乎没有提供具体的答案.非常感谢.
我正在使用非阻塞套接字(C/C++)编写网络通信程序select.该程序非常大,所以我无法上传源代码.在非常激进的测试会话中,我使用测试代码频繁地打开和关闭TCP和UDP.总是最终一端没有响应并且CPU使用率超过98或99%.然后我用gdb来附加."bt"显示以下内容:
0x00007f1b71b59ac3 in __select_nocancel () at ../sysdeps/unix/syscall-template.S:82
82 ../sysdeps/unix/syscall-template.S: No such file or directory.
in ../sysdeps/unix/syscall-template.S
Run Code Online (Sandbox Code Playgroud)
它可能是什么类型的错误?
$ uname -a
Linux kiosk2 2.6.32-34-generic #77-Ubuntu SMP Tue Sep 13 19:39:17 UTC 2011 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud) openssl ×4
certificate ×3
ssl ×3
ruby ×2
sockets ×2
c ×1
exit-code ×1
getaddrinfo ×1
ipv6 ×1
posix-select ×1
shell ×1
stdout ×1
tcp ×1