PSCertUtils.Git.psm1
Function Get-GitCurlBundlePath { [CmdletBinding()] $GitSSL = "" try { $GitSSL = $(git config http.sslcainfo) } catch { Write-Error "Git is not installed." } return $GitSSL } Function Install-X509CertificateToGitTrustedCaBundle { [CmdletBinding()] Param( [Parameter(Mandatory = $True, ValueFromPipelineByPropertyName=$True, Position = 0)] [ValidateNotNullOrEmpty()] [Alias("CertificateObject", "X509CertificateObject", "X509Certificate2")] [System.Security.Cryptography.X509Certificates.X509Certificate2] $X509Certificate, [Parameter(Mandatory = $False, ValueFromPipelineByPropertyName=$True, Position = 1)] [Alias("FriendlyName", "Name", "Alias", "CertificateAlias")] [String] $CertAlias, [Parameter(Mandatory = $False, Position = 2)] [String[]] $GitCaBundles = $(Get-GitCurlBundlePath) ) PROCESS { # Use the common name as alias if no alias has been given If ([String]::IsNullOrWhiteSpace($CertAlias)) { $CertAlias = Get-X509CommonNameFromSubject -X509Subject $X509Certificate.Subject } # Remove invalid characters from alias $CertAlias = Get-SafeCertificateAlias $CertAlias if ($GitCaBundles.Count -gt 0) { # Import the certificate to all given java keystores $GitCaBundles | Import-CertificateToBundle -X509Certificate $X509Certificate -CertAlias $CertAlias } else { Write-Warning "No git ca bundles found to add certficate to." } } } |