Openldap

openldap 用密碼解密 cert8.db、keys3.db

  • February 13, 2019

我必須分析一個 OpenLDAP 配置,其中證書和密鑰儲存在 cert8.db 和 keys3.db 文件中。

我有關聯的密碼文件,似乎用於加密/解密數據。還有一個 secmod.db 文件,其中包含:

Root Certs /usr/lib64/libnssckbi.so
Root Certs KdNSS Internal PKCS #11 Module
configdir='/etc/openldap/certs'
certPrefix=''
keyPrefix=''
secmod='secmod.db'
flags= updatedir=''
updateCertPrefix=''
updateKeyPrefix=''
updateid=''
updateTokenDescription='' ?=NSS Internal PKCS #11 Module

file返回命令/etc/openldap/certs

cert8.db:  Berkeley DB 1.85 (Hash, version 2, native byte-order)
key3.db:   Berkeley DB 1.85 (Hash, version 2, native byte-order)
password:  ASCII text
secmod.db: Berkeley DB 1.85 (Hash, version 2, native byte-order)

但是,我找不到解密儲存在這兩個文件中的內容的方法。我曾嘗試使用 pk12util 但列出包含的證書返回:

pk12util -l cert8.db
Enter password for PKCS12 file:
pk12util: PKCS12 decoding failed: SEC_ERROR_BAD_DER: security library: improperly formatted DER-encoded message.

如何從這些文件中檢索數據?

編輯

我也來閱讀這篇建議使用的文章db_dump

db_dump -l cert8.db 
db_dump: BDB0210 cert8.db: metadata page checksum error
db_dump: BDB5115 open: cert8.db: Invalid argument

非常感謝

certutilnss-tools(在 RHEL/CentOS 上)使用:

certutil -L -d /etc/openldap/certs

會給你一個證書列表。

Certificate Nickname                                         Trust Attributes
                                                            SSL,S/MIME,JAR/XPI

OpenLDAP Server                                              CTu,u,u

導出密鑰

pk12util  -o outfile.p12 -d /etc/openldap/certs -n "OpenLDAP Server"

這將要求導出密碼(在password文件中)和導出密鑰的密碼。

引用自:https://serverfault.com/questions/953701