cchurch / ansible-role-win-pfx

Ansible role to install SSL certificates from PFX files on Windows

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status Galaxy

Win-PFX

Create a PFX file from SSL key and certificate(s) to install on Windows Server.

Requirements

The local (controller) host must have the openssl command line tools installed if creating a PFX file from existing PEM-formatted key and certificate.

Role Variables

Use the following variable to specify whether to install or remove a certificate:

  • pfx_state: Specify "present" or "absent"; default is "present".

If you already have the certificate as a PFX file, use the following variable to specify the path to that file:

  • pfx_file: Local path to PFX file; default is "", which means the SSL key and certificate must be specified using the other variables below.

If you only have the SSL key and certificate in PEM format, use the following variables to provide the source data:

  • pfx_key: A string with the content (not the path) of the private key associated with the certificate. Default is "", required unless pfx_file is specified.
  • pfx_crt: A string with the content (not the path) of the certificate. Default is "", required unless pfx_file is specified.
  • pfx_ca: A string with the content of additional CA certificates that should be bundled into the PFX file; Default is "".
  • pfx_output_file: A local path to save a copy of the PFX file generated by this role; default is "", which does not save a copy.

This role will set the following variable after installing or removing the certificate:

  • pfx_import_result: Dictionary with changed, log and thumbprint keys. The value of thumbprint may be used by later roles or tasks to reference the certificate that was installed.

Example Playbook

The following example playbook generates a PFX file from the given key and certificate and installs to a Windows host:

- hosts: windows
  vars:
    pfx_key: |
      -----BEGIN PRIVATE KEY-----
      MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCvV7EkKx8d0qNb
      vCX+DS4mDqAeGDE+ErVPkSlFWzefSM64gIDgWvP/1vIuXArvooZcpTKg0KEiNsLc
      IxHkDKa3i9di9DyaH4cH2clP518USd0tZGF8MYHvtzTq3HrTpbUgtl+WC1K7yuWA
      ++OLSTzmbHT9gn3NsU6Pw9bUIandVNeEv1X4zmile4eEZLmZlt0fJ3rnI7tagbhT
      yNISs4pWMw8MqZLXVRpp4F3d8ZbWAnElmYKxQidovaJCuzEMuQd8Tkj05mgmiFxd
      4cxAdZTFT0hkFOF7z47dCHQc1J5CEhQZkyi0GxyR4YEJd6AmLv9klfroYVUiFr8w
      INBMg+wPAgMBAAECggEAR4Pywhe8Z0OEUWQZ8taZXfhVIjEn1HN48+z28kzUEOl3
      NxViex9dqZmXyYTNCRQ2zQ6r6Z9uOTAwpey/3U2zqeUlgjyvgwUc4/zV+PsbcoD1
      7w+kGy1uG8GTmb83cZ+CkscPkXko02Nb3BHgquzCJBFUXhmdCgopSsXLl1XrnFPS
      4kkU5se6HujivJYvzCgyPEjKgM71G7cmUDcBEJimX5bXmKao3GvJgHBV6JU1oF+B
      l75Oy+fWdPkBdlXpZBj8uUTTHNZG+lTwyAhMTqfnzIuY/JoQG5yhMcVqAVi9QYFZ
      tlIspzh0sOOtO6uEpyIIlat0lBiRyv15EV7jawPxEQKBgQDm/Hi+Q31hmm1srQw1
      R9DWP5jdfqTJZGaZJcJWGPIavjip63pDhC06WzNiNhYl7CUkiOTNFNcbUGG6k3nF
      X6WKQ74wrjl0cZN8EvscTJ+oAz0SSV4iXD+Cd3QbuoEUzLekB3ce8OkLY1rUuKZj
      dyhS65rCoS7O2Y3GHb8s9iLSkwKBgQDCVKKx/VTZi42U3EdeslnDBf2H9X9UPJeR
      f/53JwojG4Ae1mJNyDjO/Q4cugsTig/ZLNNLQ1zek4cTOqYeVICHI/nhq3jzAu9x
      24bHBkeGnzc46wwhbWZIrBTV+RCuk9doxqk3eI8Z9fWTl+5KlWjwZbYldBqLTliM
      vrcFcp6CFQKBgEGJ0yyQ86tU6MVUGEmp1cxkgRgfjdwCm8XKW+iX7WG/JU65HJi5
      kSekpuCv3frmlOdX3CuARURfu0r3+y4QZGTlsboYRP8QFru2mv89knNWb+aXYJk5
      OV/oSs5vTZ68M0LcR2VFD6qGh0giGDvSnGNirCebGi/gtIRI/mxgbiL3AoGAf5lD
      GsvUouNXG59n3W4OMlgEmPlBmfYPL6JzW5luto6gGZ96/MezRXYzhflCvJmyvk8I
      jiq1GBCWaLHh0Zh6rEGbGeqViDstLf2PCa+9109D20O6u1gyCRW0uKrJoVfB4TJQ
      efPXQpyVm0vvU1m3heHDL+SEaWQQEJpJYnJYUeECgYEAz0eKRHXephTyo/pAxpdr
      o6j9MlPHxv4LKiMJ35F1xwcZ6UecvJmxaEuMg6kLM8I+6veKhHMnzXFxtcbKuHdC
      37EKluqSKHRiEoxnyN9oCd5BTUiQGj21vc+2gslgA76n8HfxH4HuvRuyq4H8Ys/C
      sGoq8f2hBA1fAT0yS0C5CGE=
      -----END PRIVATE KEY-----
    pfx_crt: |
      -----BEGIN CERTIFICATE-----
      MIIDsTCCApmgAwIBAgIJAIu+OCOKGexLMA0GCSqGSIb3DQEBCwUAMG8xCzAJBgNV
      BAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEPMA0GA1UEBwwGRHVyaGFt
      MSAwHgYDVQQKDBdOaW5lIE1vcmUgTWludXRlcywgSW5jLjEUMBIGA1UEAwwLZXhh
      bXBsZS5jb20wHhcNMTcwNzA2MjM1NTA4WhcNMTgwNzA2MjM1NTA4WjBvMQswCQYD
      VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExDzANBgNVBAcMBkR1cmhh
      bTEgMB4GA1UECgwXTmluZSBNb3JlIE1pbnV0ZXMsIEluYy4xFDASBgNVBAMMC2V4
      YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr1exJCsf
      HdKjW7wl/g0uJg6gHhgxPhK1T5EpRVs3n0jOuICA4Frz/9byLlwK76KGXKUyoNCh
      IjbC3CMR5Aymt4vXYvQ8mh+HB9nJT+dfFEndLWRhfDGB77c06tx606W1ILZflgtS
      u8rlgPvji0k85mx0/YJ9zbFOj8PW1CGp3VTXhL9V+M5opXuHhGS5mZbdHyd65yO7
      WoG4U8jSErOKVjMPDKmS11UaaeBd3fGW1gJxJZmCsUInaL2iQrsxDLkHfE5I9OZo
      JohcXeHMQHWUxU9IZBThe8+O3Qh0HNSeQhIUGZMotBsckeGBCXegJi7/ZJX66GFV
      Iha/MCDQTIPsDwIDAQABo1AwTjAdBgNVHQ4EFgQUoaYjRHC8A7sFVYCwVBVbL4G1
      OoIwHwYDVR0jBBgwFoAUoaYjRHC8A7sFVYCwVBVbL4G1OoIwDAYDVR0TBAUwAwEB
      /zANBgkqhkiG9w0BAQsFAAOCAQEAo/DNOdY1uwWpAcbxtVDKq7uoLV2w/h8sdsaQ
      fO/yiYRJe4qjP6LuaD1g+GUpVYclzcDjtN/iSKSGIs9qisN6S2UhrduaszwNNVMH
      s5ZtLPtPwS79NOQXoTZ+FzvYGMCdSxd8yUunxmOd+tjBVYMYq+TqHVxO+BSHUOdY
      H7cIRc8Ti7/sOZYqxO2Lr+X6DGJmpx/t4ML/KJAuOSpItL5I1aVZQ/dy+K+UayC/
      0NfCeCkka+EbNuOkPVO9IZG2vUVjXcoOy2ByY+ILUPDYVAMX/o60PcOeehv9I9vA
      FzlqXiU/LHGIKLwmrpwDBNwW8Ot8pibe4TJr9ODMXQb8GJhnzA==
      -----END CERTIFICATE-----
  roles:
    - role: cchurch.win-pfx

License

GPLv3

Author Information

Chris Church chris@ninemoreminutes.com

About

Ansible role to install SSL certificates from PFX files on Windows

License:GNU General Public License v3.0


Languages

Language:PowerShell 49.7%Language:Python 36.3%Language:Makefile 14.1%