2013-08-06 63 views
1

有没有办法通过运行openssl(或任何其他)命令并解析其某些输出来找到证书包的路径(例如,/etc/ssl/certs/ca-certificates.crt)?有没有其他的方式,没有运行openssl命令?检测OpenSSL可使用的证书包

我想在产品安装过程中找到路径,以便我可以提供合理的默认设置。

回答

1

是的,有:你可以解析

openssl version -a 

样本输出的输出:

built on: Thu Mar 14 02:45:44 NZDT 2013 
platform: linux-elf 
options: bn(64,32) rc4(1x,char) des(ptr,risc1,16,long) blowfish(idx) 
compiler: gcc -Wl,--as-needed,-O1,--hash-style=both -DPURIFY -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM 
OPENSSLDIR: "/usr/local/Libraries/OpenSSL/x86/1.0.1c/gcc-4.7.2/ssl" 

你可以看到,最后一行显示你所在的目录,你可以找到你证书子目录,这可能是你正在寻找的。

我不知道是否有任何其他方式获得此信息(OPENSSLDIR毕竟是一个编译标志)。

+0

不幸的是,它似乎无处不在。我有一个带有OpenSSL 0.9.6i的HP-UX,我也必须支持,它没有'openssl version -a'中的行。 – wilx