function Export-CACertificates {
param(
[string]$OutputFile = 'all_ca_certificates.pem',
[ValidateSet("DOS", "UNIX")]
[string]$NewLineFormat = "DOS"
)
$newline = if ($NewLineFormat -eq "DOS") { "`r`n" } else { "`n" }
$certificateType = [System.Security.Cryptography.X509Certificates.X509Certificate2]
$includedStores = @("TrustedPublisher", "Root", "CA", "AuthRoot")
$certificates = $includedStores.ForEach({
Get-ChildItem Cert:\CurrentUser\$_ | Where-Object { $_ -is $certificateType}
})
$pemCertificates = $certificates.ForEach({
$pemCertificateContent = [System.Convert]::ToBase64String($_.RawData,1)
"-----BEGIN CERTIFICATE-----$newline${pemCertificateContent}$newline-----END CERTIFICATE-----"
})
$uniquePemCertificates = $pemCertificates | select -Unique
$uniquePemCertificates -join $newline | Set-Content -Path $OutputFile -NoNewline
}
# Export-ModuleMember -Function Export-CACertificates
# Import-Module Export-CACertificates
# Export-CACertificates -OutputFile "my_ca_certificates_dos.pem" -NewLineFormat "DOS"
Export-CACertificates -OutputFile "my_ca_certificates_unix.pem" -NewLineFormat "UNIX"