Skip to content

Instantly share code, notes, and snippets.

@IlyaFinkelshteyn
Last active November 20, 2018 12:59
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save IlyaFinkelshteyn/e72d57d1a8870b2e888de067a51868c1 to your computer and use it in GitHub Desktop.
Save IlyaFinkelshteyn/e72d57d1a8870b2e888de067a51868c1 to your computer and use it in GitHub Desktop.
# Create Base64 string cert like this (note that X509KeyStorageFlags.Exportable required to export pfx with pritave key)
# X509Certificate2 cert = new X509Certificate2(<path_to_pfx>, <password>, X509KeyStorageFlags.Exportable);
# string base64Str = Convert.ToBase64String(cert.Export(X509ContentType.Pfx));
# Next store it as a secire variable named certStr in Appveyor project config
# Then use it during a build.
environment:
certStr:
secure: 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
install:
#use it as PFX file
- ps: >-
$bytes = [System.Convert]::FromBase64String($env:certStr)
[System.IO.File]::WriteAllBytes("$env:APPVEYOR_BUILD_FOLDER\myCert.pfx", $bytes)
#or use as X509 cert and install to store
- ps: >-
$bytes = [System.Convert]::FromBase64String($env:certStr)
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cert.Import($bytes)
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store("My", "CurrentUser");
$store.Open("ReadWrite");
$store.Add($cert)
$store.Close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment