मैंने एक PowerShell स्क्रिप्ट बनाई है ca-cert.crt
जो आपके Windows प्रमाणन स्टोर (CurrentUser या LocalMachine) में स्थापित CA प्रमाणपत्रों के आधार पर फ़ाइल लिखने में सक्षम है । स्क्रिप्ट को इस तरह से चलाएं:
CreateCaCert.ps1 -StoreLocation CurrentUser | Out-File -Encoding utf8 curl-ca-cert.crt
यह वह curl-ca-cert.crt
फ़ाइल बनाएगा जिसे उसी निर्देशिका में संग्रहीत किया curl.exe
जाना चाहिए और आपको उन्हीं साइटों को मान्य करने में सक्षम होना चाहिए जैसा कि आप अपने विंडोज अनुप्रयोगों में कर सकते हैं (ध्यान दें कि इस फ़ाइल का भी उपभोग किया जा सकता है git
)।
"आधिकारिक" स्क्रिप्ट GitHub पर पाई जा सकती है , लेकिन प्रारंभिक संस्करण संदर्भ के लिए यहां सूचीबद्ध है:
[CmdletBinding()]
Param(
[ValidateSet(
[System.Security.Cryptography.X509Certificates.StoreLocation]::CurrentUser,
[System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine)]
[string]
$StoreLocation = [System.Security.Cryptography.X509Certificates.StoreLocation]::CurrentUser
)
$maxLineLength = 77
# Open the store
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store ([System.Security.Cryptography.X509Certificates.StoreName]::AuthRoot, $StoreLocation)
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly);
# Write header
Write-Output "# Root certificates ($StoreLocation) generated at $(Get-Date)"
# Write all certificates
Foreach ($certificate in $store.Certificates)
{
# Start with an empty line
Write-Output ""
# Convert the certificate to a BASE64 encoded string
$certString = [Convert]::ToBase64String($certificate.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Cert));
# Write the actual certificate
Write-Output "# Friendly name: $($certificate.FriendlyName)"
Write-Output "# Issuer: $($certificate.Issuer)"
Write-Output "# Expiration: $($certificate.GetExpirationDateString())"
Write-Output "# Serial: $($certificate.SerialNumber)"
Write-Output "# Thumbprint: $($certificate.Thumbprint)"
Write-Output "-----BEGIN CERTIFICATE-----"
For ($i = 0; $i -lt $certString.Length; $i += $maxLineLength)
{
Write-Output $certString.Substring($i, [Math]::Min($maxLineLength, $certString.Length - $i))
}
Write-Output "-----END CERTIFICATE-----"
}