我知道我们可以在PowerShell上做到这一点。
(Get-ChildItem Cert:\Currentuser\My\ | Select -Property SignatureAlgorithm -ExpandProperty SignatureAlgorithm).FriendlyName结果:
sha256RSA
sha256RSA但是,公司不允许我们在这个领域运行PowerShell。
我可以运行以下命令,并获得为中间存储和根存储安装的证书。
certutil -store CA
certutil -store Root而且,这些都会产生结果。但是,在查看: Cert ( SHA1 )时,它只显示了SHA1而没有显示SHA256?
抽样结果--其中一个条目:
Serial Number: removed
Issuer: CN=Entrust Root Certification Authority - G2, OU=(c) 2009 Entrust, Inc. - for authorized use only, OU=See www.entrust.net/legal-terms, O=Entrust, Inc., C=US
NotBefore: 10/22/2014 1:05 PM
NotAfter: 10/23/2024 3:33 AM
Subject: CN=Entrust Certification Authority - L1K, OU=(c) 2012 Entrust, Inc. - for authorized use only, OU=See www.entrust.net/legal-terms, O=Entrust, Inc., C=US
Non-root Certificate
Cert Hash(sha1): removed最后,我想通过VeriSign这样的公司进行查询。
谢谢你的见解。
来自@JosefZ,我感谢您给我的见解:好的..。我认为我大部分的工作,但我正在从其他证书提供者获得额外的信息。
目前的脚本是:
@echo off
echo personal
certutil -v -user -store "MY"|findstr "Serial.Number Algorithm.ObjectId Cert.Hash( X509.Certificate: O=VeriSign"
echo Intermediate
certutil -v -store CA|findstr "Serial.Number Algorithm.ObjectId Cert.Hash( X509.Certificate: O=VeriSign"
echo Root
certutil -v -store Root|findstr "Serial.Number Algorithm.ObjectId Cert.Hash( X509.Certificate: O=VeriSign"结果是-请注意这里的额外证书:
X509 Certificate:
Serial Number: <removed>
Algorithm ObjectId: 1.2.840.113549.1.1.11 sha256RSA
Algorithm ObjectId: 1.2.840.113549.1.1.1 RSA (RSA_SIGN)
Algorithm ObjectId: 1.2.840.113549.1.1.11 sha256RSA
Cert Hash(md5): <removed>
Cert Hash(sha1): <removed>而且,应该只显示VeriSign:
X509 Certificate:
Serial Number: <removed>
Algorithm ObjectId: 1.2.840.113549.1.1.11 sha256RSA
O=VeriSign, Inc.
O=VeriSign, Inc.
Algorithm ObjectId: 1.2.840.113549.1.1.1 RSA (RSA_SIGN)
Algorithm ObjectId: 1.2.840.113549.1.1.11 sha256RSA
Cert Hash(md5): <removed>
Cert Hash(sha1): <removed>注意:我们只想看到VeriSign (或其他类似Entrust的供应商)的证书。
Part III,我们现在看到了--我们已经很接近了:这很有效,并且显示了每一个VeriSign。
for /f "delims=" %%g in ('certutil.exe -v -store Root^|findstr "OU=VeriSign"') do echo %%g这显示了每个证书序列号。
for /f "delims=" %%g in ('certutil.exe -v -store Root^|findstr "Serial.Number"') do echo %%g我们需要这样的东西:
for /f "delims=" %%g in ('certutil.exe -v -store Root^|findstr "OU=VeriSign Serial.Number"') do echo %%g在伪码:对每个VeriSign证书,获得序列号,以便我们可以评估的沙级。
这是可行的,但希望将其精简为只显示VeriSign证书:
for /f "tokens=1,2 delims=:" %%g in ('certutil.exe -v -store Root^|findstr "Serial.Number"') do (certutil -v -store Root "%%h" | findstr "Serial.Number Algorithm.ObjectId Cert.Hash( X509.Certificate: NotBefore NotAfter OU= CN=")但是,看看最后的脚本,结果有点奇怪:
for %a in (CA Root AuthRoot) do (
for /f "tokens=1,2 delims=:" %g in ('certutil.exe -v -store %a^|findstr "Serial.Number"') do (
certutil.exe -v -store %a "%h" | echo %a & findstr "Serial.Number Algorithm.ObjectId Cert.Hash( X509.Certificate: NotBefore NotAfter OU= CN=")
)发布于 2018-11-21 01:43:33
下面的53092715.bat脚本返回所需的序列号,请参阅echo %_Issuer%: %_user% -store "%~1" !_NextCert!命令中的_NextCert变量。
用法:53092715.bat option [Issuer]其中
option (可选,默认值为"";如果存在Issuer参数,则为强制;然后使用例如"");= Issuer (可选,默认值为"Verisign");可能不包含(等号);可能不包含空格(这些限制可以通过一些努力消除)。用法示例:
53092715.bat对HKEY_LOCAL_MACHINE密钥或证书存储的查询53092715.bat -gp支持查询组策略证书存储区53092715.bat -user查询HKEY_CURRENT_USER密钥或证书存储区53092715.bat "" Apple53092715.bat -user Thawte剧本:
@ECHO OFF
SETLOCAL EnableExtensions EnableDelayedExpansion
if "%~2"=="" (set "_Issuer=VeriSign") else set "_Issuer=%~2"
if /I "%~1"=="" (set "_user=") else set "_user=%~1"
call :findCertSN "Root"
call :findCertSN "AuthRoot"
call :findCertSN "CA"
rem call :findCertSN "My"
ENDLOCAL
goto :eof
:findCertSN
set "_NextCert="
for /F "delims=" %%G in ('
certutil %_user% -store "%~1"^|findstr "^Serial.Number: ^Issuer:"') do (
set "_Line=%%G"
if "!_Line:~0,14!"=="Serial Number:" (
set "_NextCert=!_Line:~15!"
) else (
if "!_Line:~0,7!"=="Issuer:" (
set "_Line=!_Line:~8!"
set "_NextIssuer="
for %%g in (!_line!) do (
set "_Elin=%%g"
set "_Part=!_Elin:%_Issuer%=!"
if not "!_Part!"=="!_Elin!" set "_NextIssuer=Match"
)
if defined _NextCert if defined _NextIssuer (
echo %_Issuer%: %_user% -store "%~1" !_NextCert!
set "_NextCert="
)
)
)
)
goto :eofhttps://stackoverflow.com/questions/53092715
复制相似问题