title | description | author | ms.author | ms.service | ms.subservice | ms.topic | ms.date |
---|---|---|---|---|---|---|---|
Enable remote access from intranet with TLS/SSL certificate (Advanced) |
This tutorial provides steps for setting up a self-hosted integration runtime with multiple on-premises machines and enabling remote access from intranet with TLS/SSL certificate (Advanced) to secure communication between integration runtime nodes. |
lrtoyou1223 |
lle |
data-factory |
tutorials |
tutorial |
12/21/2021 |
In this tutorial, you will learn how to set up a self-hosted integration runtime with multiple on-premises machines and enable remote access from intranet with TLS/SSL certificate (Advanced) to secure communication between integration runtime nodes.
- An introduction to SSL/TLS Strong Encryption.
- Certificate could be a general TLS certificate for a Web Server. Requirements:
- The certificate must be a publicly trusted X509 v3 certificate. We recommend that you use certificates that are issued by a public partner certification authority (CA).
- Each integration runtime node must trust this certificate.
- We recommend Subject Alternative Name (SAN) certificates because all the fully qualified domain names (FQDN) of integration runtime nodes are required to be secured by this certificate. (WCF TLS/SSL validate only check last DNS Name in SAN was fixed in .NET Framework 4.6.1. Refer to Mitigation: X509CertificateClaimSet.FindClaims Method for more information.)
- Wildcard certificates (*) are not supported.
- The certificate must have a private key (like PFX format).
- The certificate can use any key size supported by Windows Server 2012 R2 for TLS/SSL certificates.
- We only support CSP (Cryptographic Service Provider) certificate so far. Certificates that use CNG keys (Key Storage Provider) aren't supported.
-
Run below PowerShell command on all machines to get their FQDNs:
[System.Net.Dns]::GetHostByName("localhost").HostName
For example, the FQDNs are node1.domain.contoso.com and node2.domain.contoso.com.
-
Generate a certificate with the FQDNs of all machines in Subject Alternative Name.
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/generate-certificate-subject-alternative-name.png" alt-text="Screenshot that shows generating certificate in subject alternative name.":::
-
Install the certificate on all nodes to Local Machine -> Personal so that it can be selected on the integration runtime configuration manager:
-
Click on the certificate and install it.
-
Select Local Machine and enter the password.
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/select-local-machine.png" alt-text="Screenshot that shows selecting local machine.":::
-
Select Place all certificates in the following store. Click Browse. Select Personal.
-
Select Finish to install the certificate.
-
-
Enable remote access from intranet:
-
During the self-hosted integration runtime node registration:
-
Select Enable remote access from intranet and select Next.
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/enable-remote-access-intranet.png" alt-text="Screenshot that shows enabling remote access from intranet.":::
-
Set the Tcp Port (8060 by default). Make sure the port is open on firewall.
-
Click Select. In the pop-up window, choose the right certificate and select Finish.
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/select-certificate.png" alt-text="Screenshot that shows selecting certificate.":::
-
-
After the self-hosted integration runtime node is registered:
[!Note] The self-hosted integration runtime can change the remote access settings only when it has single node, which is by design. Otherwise, the radio button cannot be checked.
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/enable-with-tls-ssl-certificate-advanced.png" alt-text="Screenshot that shows enabling with TLS/SSL certificate (Advanced).":::
-
Go to self-hosted Integration Runtime Configuration Manager -> Settings -> Remote access from intranet. Click Change.
-
Choose Enable with TLS/SSL certificate (Advanced).
-
Click Select. In the pop-up window, choose the right certificate and select OK.
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/choose-tls-ssl-certificate.png" alt-text="Screenshot that shows choosing certificate.":::
-
-
Verify the remote access settings in self-hosted Integration Runtime Configuration Manager.
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/verify-remote-access-settings-1.png" alt-text="Screenshot that shows verifying the remote access settings in Self-hosted Integration Runtime Configuration Manager step 1.":::
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/verify-remote-access-settings-2.png" alt-text="Screenshot that shows verifying the remote access settings in Self-hosted Integration Runtime Configuration Manager step 2.":::
-
-
Using a self-signed certificate if you don’t have the publicly trusted certificate:
-
Generate and export a self-signed certificate (this step can be skipped if you already have the certificate):
-
Generate a self-signed certificate via PowerShell (with elevated privileges):
New-SelfSignedCertificate -DnsName contoso.com, node1.domain.contoso.com, node2.domain.contoso.com -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -CertStoreLocation cert:\LocalMachine\My
-
To export the generated certificate with a private key to a password protected PFX file, you will need its thumbprint. It can be copied from the results of
New-SelfSignedCertificate
command. For example, it isCEB5B4372AA7BF877E56BCE27542F9F0A1AD197F
. -
Export the generated certificate with the private key via PowerShell (with elevated privileges):
$CertPassword = ConvertTo-SecureString -String “Password” -Force –AsPlainText Export-PfxCertificate -Cert cert:\LocalMachine\My\CEB5B4372AA7BF877E56BCE27542F9F0A1AD197F -FilePath C:\self-signedcertificate.pfx -Password $CertPassword
-
You have exported the certificate with the private key to C:\self-signedcertificate.pfx.
-
-
Install the certificate on all nodes to: Local Machine -> Trusted Root Certification Authorities store:
- Click on the certificate and install it.
- Select Local Machine and enter the password.
- Select Place all certificates in the following store. Click Browse. Select Trusted Root Certification Authorities.
- Select Finish to install the certificate.
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/install-certificate-on-all-nodes.png" alt-text="Screenshot that shows install the certificate on all nodes.":::
-
-
Troubleshooting
-
Verify the certificate exists in the target store:
-
Follow this procedure How to: View certificates with the MMC snap-in - WCF to view Certificates (Local Computer) in the MMC snap-in.
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/view-certificates-mmc-snap-in.png" alt-text="Screenshot that shows viewing certificates in MMC snap in." lightbox="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/view-certificates-mmc-snap-in-expanded.png":::
-
Confirm the certificate is installed in Personal and Trusted Root Certification Authorities store (If it is a self-signed certificate).
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/certificate-personal-trusted-root-certification-authorities.png" alt-text="Screenshot that shows the certificate installed in Personal and Trusted Root Certification Authorities store.":::
-
-
Verify the certificate has a private key and isn’t expired.
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/verify-certificate.png" alt-text="Screenshot that shows verifying the certificate has a private key and isn’t expired.":::
-
Make sure the service account for the self-hosted integration runtime (default account is NT SERVICE\DIAHostService) has read permission to the private keys of certificate:
-
Right click on the certificate -> All Tasks -> Manage Private Keys.
-
If no, grant the permission, Apply and save.
:::image type="content" source="./media/tutorial-enable-remote-access-intranet-tls-ssl-certificate/ensure-read-permission-to-certificate-private-keys.png" alt-text="Screenshot that shows the Service account for the self-hosted integration runtime has read permission to the private keys of certificate.":::
-
-