beb0fd9b8b
* win_iis_webbinding: Fix bug with ipaddress * returning multiple bindings instead of only the ones defined as *. Address possible future issues around hostheader * by just disallowing it. Resolves 25473. Added new test for this case. Removed all validation for https binding collisions due to difficulty in validating all cases in which they could or could not collide. As a result, also removed return values relating to certificate data. Updated testing and docs appropriately * win_iis_webbinding: added break to remove binding loops
93 lines
2.7 KiB
YAML
93 lines
2.7 KiB
YAML
- name: reboot before feature install to ensure server is in clean state
|
|
win_reboot:
|
|
|
|
- name: ensure IIS features are installed
|
|
win_feature:
|
|
name: Web-Server
|
|
state: present
|
|
includ_sub_features: True
|
|
include_management_tools: True
|
|
register: feature_install
|
|
|
|
- name: reboot after feature install
|
|
win_reboot:
|
|
when: feature_install.reboot_required
|
|
|
|
- name: get all websites from server
|
|
raw: powershell.exe "(get-website).name"
|
|
register: existing_sites
|
|
|
|
- name: ensure all sites are removed for clean testing
|
|
win_iis_website:
|
|
name: "{{ item }}"
|
|
state: absent
|
|
with_items:
|
|
- "{{ existing_sites.stdout_lines }}"
|
|
|
|
- name: add testing site {{ test_iis_site_name }}
|
|
win_iis_website:
|
|
name: "{{ test_iis_site_name }}"
|
|
physical_path: c:\inetpub\wwwroot
|
|
|
|
- name: ensure all bindings are removed prior to starting testing
|
|
win_iis_webbinding:
|
|
name: "{{ test_iis_site_name }}"
|
|
state: absent
|
|
protocol: "{{ item.protocol }}"
|
|
port: "{{ item.port }}"
|
|
with_items:
|
|
- {protocol: http, port: 80}
|
|
- {protocol: https, port: 443}
|
|
|
|
- name: copy certreq file
|
|
win_copy:
|
|
content: |-
|
|
[NewRequest]
|
|
Subject = "CN={{ item.name }}"
|
|
KeyLength = 2048
|
|
KeyAlgorithm = RSA
|
|
MachineKeySet = true
|
|
RequestType = Cert
|
|
dest: "{{ item.dest }}"
|
|
with_items:
|
|
- {name: test.com, dest: 'c:\windows\temp\certreq1.txt'}
|
|
- {name: test1.com, dest: 'c:\windows\temp\certreq2.txt'}
|
|
- {name: '*.test.com', dest: 'c:\windows\temp\certreqwc.txt'}
|
|
|
|
- name: make sure response files are absent
|
|
win_file:
|
|
path: "{{ item }}"
|
|
state: absent
|
|
with_items:
|
|
- 'c:\windows\temp\certreqresp1.txt'
|
|
- 'c:\windows\temp\certreqresp2.txt'
|
|
- 'c:\windows\temp\certreqrespwc.txt'
|
|
|
|
- name: create self signed cert from certreq
|
|
win_command: certreq -new -machine {{ item.req }} {{ item.resp }}
|
|
with_items:
|
|
- {req: 'c:\windows\temp\certreq1.txt', resp: 'c:\windows\temp\certreqresp1.txt'}
|
|
- {req: 'c:\windows\temp\certreq2.txt', resp: 'c:\windows\temp\certreqresp2.txt'}
|
|
- {req: 'c:\windows\temp\certreqwc.txt', resp: 'c:\windows\temp\certreqrespwc.txt'}
|
|
|
|
- name: register certificate thumbprint1
|
|
raw: '(gci Cert:\LocalMachine\my | ? {$_.subject -eq "CN=test.com"})[0].Thumbprint'
|
|
register: thumbprint1
|
|
|
|
- name: register certificate thumbprint2
|
|
raw: '(gci Cert:\LocalMachine\my | ? {$_.subject -eq "CN=test1.com"})[0].Thumbprint'
|
|
register: thumbprint2
|
|
|
|
- name: register certificate thumbprint_wc
|
|
raw: '(gci Cert:\LocalMachine\my | ? {$_.subject -eq "CN=*.test.com"})[0].Thumbprint'
|
|
register: thumbprint_wc
|
|
|
|
- debug:
|
|
var: thumbprint1.stdout
|
|
verbosity: 1
|
|
- debug:
|
|
var: thumbprint2.stdout
|
|
verbosity: 1
|
|
- debug:
|
|
var: thumbprint_wc.stdout
|
|
verbosity: 1
|