Skip to content

Commit 70d5206

Browse files
author
Michael Henderson
committed
Merge branch 'merge-workflows' of https://github.com/Keyfactor/iis-orchestrator into merge-workflows
2 parents b4db1ff + d39e918 commit 70d5206

File tree

1 file changed

+58
-12
lines changed

1 file changed

+58
-12
lines changed

README.md

Lines changed: 58 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,29 @@
11
# IIS Orchestrator
2-
## Orchestrator
32

43
The IIS Orchestrator treats the certificates bound (actively in use) on a Microsoft Internet Information Server (IIS) as a Keyfactor certificate store. Inventory and Management functions are supported. The orchestrator replaces the IIS orchestrator that ships with Keyfactor Command (which did not support binding.)
54

6-
<!-- add integration specific information below -->
7-
***
8-
**IIS Binding Orchestrator Configuration**
5+
#### Integration status: Production - Ready for use in production environments.
6+
7+
## About the Keyfactor Universal Orchestrator Capability
8+
9+
This repository contains a Universal Orchestrator Capability which is a plugin to the Keyfactor Universal Orchestrator. Within the Keyfactor Platform, Orchestrators are used to manage “certificate stores” &mdash; collections of certificates and roots of trust that are found within and used by various applications.
10+
11+
The Universal Orchestrator is part of the Keyfactor software distribution and is available via the Keyfactor customer portal. For general instructions on installing Capabilities, see the “Keyfactor Command Orchestrator Installation and Configuration Guide” section of the Keyfactor documentation. For configuration details of this specific Capability, see below in this readme.
12+
13+
The Universal Orchestrator is the successor to the Windows Orchestrator. This Capability plugin only works with the Universal Orchestrator and does not work with the Windows Orchestrator.
14+
15+
---
16+
17+
18+
19+
20+
---
21+
22+
**IIS Orchestrator Configuration**
923

1024
**Overview**
1125

12-
The IIS Binding Orchestrator remotely manages certificates in a Windows Server local machine certificate store.
26+
The IIS Orchestrator remotely manages certificates in a Windows Server local machine certificate store.
1327
The "Personal" (My) and "Web Hosting" Stores are supported.
1428
Only certificates that are bound to an IIS web site are managed.
1529
Unbound certificates are ignored.
@@ -19,15 +33,17 @@ This agent implements three job types – Inventory, Management Add, and Managem
1933
WinRM is used to remotely manage the certificate stores and IIS bindings. WinRM must be properly configured to allow
2034
the server running the orchestrator to manage the server running IIS.
2135

22-
**1. Create the New Certificate Store Type for the IIS Binding Orchestrator**
36+
**Note if you are upgrading from version 1.1.2 you must run the IISWBin 1.1.3 upgrade script.sql SQL Script**
37+
38+
**1. Create the New Certificate Store Type for the IIS Orchestrator**
2339

2440
In Keyfactor Command create a new Certificate Store Type similar to the one below:
2541

2642
#### STORE TYPE CONFIGURATION
2743
CONFIG ELEMENT | DESCRIPTION
2844
------------------|------------------
2945
Name |Descriptive name for the Store Type
30-
Short Name |The short name that identifies the registered functionality of the orchestrator. Must be IISBinding
46+
Short Name |The short name that identifies the registered functionality of the orchestrator. Must be IISWBin
3147
Custom Capability|Store type name orchestrator will register with. Must be "IISBindings".
3248
Needs Server |Must be checked
3349
Blueprint Allowed |Unchecked
@@ -44,7 +60,7 @@ Job Types |Inventory, Add, and Remove are the supported job types.
4460
![](images/screen1.gif)
4561

4662
**Advanced Settings:**
47-
- **Custom Alias**Can make Required, Optional or Forbidden based on the client preference
63+
- **Custom Alias** – Forbidden
4864
- **Private Key Handling** – Required
4965

5066
![](images/screen1-a.gif)
@@ -53,9 +69,11 @@ Job Types |Inventory, Add, and Remove are the supported job types.
5369

5470
- **SPN With Port** – Defaults to false but some customers need for remote PowerShell Access
5571

56-
Parameter Name|Parameter Type|Default Value|Required
57-
---|---|---|---
58-
spnwithport|Boolean|false|No
72+
Parameter Name|Display Name|Parameter Type|Default Value|Required|Description
73+
---|---|---|---|---|---
74+
spnwithport|SPN With Port?|Boolean|false|No|An SPN is the name by which a client uniquely identifies an instance of a service
75+
WinRm Protocol|WinRm Protocol|Multiple Choice|http|Yes|Protocol that WinRM Runs on
76+
WinRm Port|WinRm Port|String|5985|Yes|Port that WinRM Runs on
5977

6078
![](images/screen1-b.gif)
6179

@@ -66,7 +84,7 @@ This section must be configured with binding fields. The parameters will be popu
6684
- **IP Address** – Required (Adding an entry, Removing an entry, Reenrolling an entry). The IP address for the web site being bound to. Default is &quot;\*&quot; for all IP Addresses.
6785
- **Port** – Required (Adding an entry, Removing an entry, Reenrolling an entry). The port for the web site being bound to. Default is &quot;443&quot;.
6886
- **Host Name** – Optional. The host name for the web site being bound to.
69-
- *Protocol* - Required (Adding an entry, Removing an entry, Reenrolling an entry)
87+
- **Protocol** - Required (Adding an entry, Removing an entry, Reenrolling an entry)
7088
- https
7189
- http
7290
- **Sni Flag** – Optional. Set the SNI flag associated with the binding being created. Default is "0". Acceptable values are:
@@ -94,13 +112,41 @@ See Keyfactor InstallingKeyfactorOrchestrators.pdf Documentation. Get from your
94112
In Keyfactor Command create a new Certificate Store similar to the one below, selecting IIS With Binding as the Category and the parameters as described in &quot;Create the New Certificate Store Type for the New IIS-With-Bindings AnyAgent&quot;.
95113

96114
![](images/screen2.gif)
115+
![](images/screen2-a.gif)
97116

98117
#### STORE CONFIGURATION
99118
CONFIG ELEMENT |DESCRIPTION
100119
----------------|---------------
101120
Category |The type of certificate store to be configured. Select category based on the display name configured above.
102121
Container |This is a logical grouping of like stores. This configuration is optional and does not impact the functionality of the store.
103122
Client Machine |The hostname of the server to be managed. The Change Credentials option must be clicked to provide a username and password. This account will be used to manage the remote server via PowerShell.
123+
Credentials |Local or domain admin account that has permissions to manage iis (Has to be admin)
104124
Store Path |My or WebHosting
125+
WinRm Protocol|http or https
126+
WinRm Port |Port to run WinRm on Default for http is 5985
105127
Orchestrator |This is the orchestrator server registered with the appropriate capabilities to manage this certificate store type.
106128
Inventory Schedule |The interval that the system will use to report on what certificates are currently in the store.
129+
130+
131+
#### TEST CASES
132+
Case Number|Case Name|Enrollment Params|Expected Results|Passed|Screenshot
133+
----|------------------------|------------------------------------|--------------|----------------|-------------------------
134+
1 |New Cert Enrollment To New Binding|**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`*`<br/>**Host Name:** www.firstsite.com<br/>**Sni Flag:** 0 - No SNI<br/>**Protocol:** https|New Binding Created with Enrollment Params specified|True|![](images/TestCase1Results.gif)
135+
2 |New Cert Enrollment To Existing Binding|**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`*`<br/>**Host Name:** www.firstsite.com<br/>**Sni Flag:** 0 - No SNI<br/>**Protocol:** https|Existing Binding From Case 1 Updated with New Cert|True|![](images/TestCase2Results.gif)
136+
3 |New Cert Enrollment To Existing Binding Enable SNI |**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`*`<br/>**Host Name:** www.firstsite.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https|Will Update Site In Case 2 to Have Sni Enabled|True|![](images/TestCase3Results.gif)
137+
4 |New Cert Enrollment New IP Address|**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`192.168.58.162`<br/>**Host Name:** www.firstsite.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https|New Binding Created With New IP and New SNI on Same Port|True|![](images/TestCase4Results.gif)
138+
5 |New Cert Enrollment New Host Name|**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`192.168.58.162`<br/>**Host Name:** www.newhostname.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https|New Binding Created With different host on Same Port and IP Address|True|![](images/TestCase5Results.gif)
139+
6 |New Cert Enrollment Same Site New Port |**Site Name:** FirstSite<br/>**Port:** 4443<br/>**IP Address:**`192.168.58.162`<br/>**Host Name:** www.newhostname.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https|New Binding on different port will be created with new cert enrolled|True|![](images/TestCase6Results.gif)
140+
7 |Remove Cert and Binding From Test Case 6|**Site Name:** FirstSite<br/>**Port:** 4443<br/>**IP Address:**`192.168.58.162`<br/>**Host Name:** www.newhostname.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https|Cert and Binding From Test Case 6 Removed|True|![](images/TestCase7Results.gif)
141+
8 |Renew Same Cert on 2 Different Sites|`SITE 1`<br/>**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`*`<br/>**Host Name:** www.firstsite.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https<br/>`SITE 2`<br/>**First Site**<br/>**Site Name:** SecondSite<br/>**Port:** 443<br/>**IP Address:**`*`<br/>**Host Name:** cstiis04.cstpki.int<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https|Cert will be renewed on both sites because it has the same thrumbprint|True|![](images/TestCase8Site1.gif)![](images/TestCase8Site2.gif)
142+
9 |Renew Same Cert on Same Site Same Binding Settings Different Hostname|`BINDING 1`<br/>**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`*`<br/>**Host Name:** www.firstsitebinding1.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https<br/>`BINDING 2`<br/>**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`*`<br/>**Host Name:** www.firstsitebinding2.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https|Cert will be renewed on both bindings because it has the same thrumbprint|True|![](images/TestCase9Binding1.gif)![](images/TestCase9Binding2.gif)
143+
10 |Renew Single Cert on Same Site Same Binding Settings Different Hostname Different Certs|`BINDING 1`<br/>**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`*`<br/>**Host Name:** www.firstsitebinding1.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https<br/>`BINDING 2`<br/>**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`*`<br/>**Host Name:** www.firstsitebinding2.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https|Cert will be renewed on only one binding because the other binding does not match thrumbprint|True|![](images/TestCase10Binding1.gif)![](images/TestCase10Binding2.gif)
144+
11 |Renew Same Cert on Same Site Same Binding Settings Different IPs|`BINDING 1`<br/>**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`192.168.58.162`<br/>**Host Name:** www.firstsitebinding1.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https<br/>`BINDING 2`<br/>**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`192.168.58.160`<br/>**Host Name:** www.firstsitebinding1.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https|Cert will be renewed on both bindings because it has the same thrumbprint|True|![](images/TestCase11Binding1.gif)![](images/TestCase11Binding2.gif)
145+
12 |Renew Same Cert on Same Site Same Binding Settings Different Ports|`BINDING 1`<br/>**Site Name:** FirstSite<br/>**Port:** 443<br/>**IP Address:**`192.168.58.162`<br/>**Host Name:** www.firstsitebinding1.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https<br/>`BINDING 2`<br/>**Site Name:** FirstSite<br/>**Port:** 543<br/>**IP Address:**`192.168.58.162`<br/>**Host Name:** www.firstsitebinding1.com<br/>**Sni Flag:** 1 - SNI Enabled<br/>**Protocol:** https|Cert will be renewed on both bindings because it has the same thrumbprint|True|![](images/TestCase12Binding1.gif)![](images/TestCase12Binding2.gif)
146+
147+
148+
149+
150+
151+
152+

0 commit comments

Comments
 (0)