1 How to configure HTTPS proxying in Zorp 5 June 24, 2014 This tutorial describes how to configure Zorp to proxy HTTPS traffic Copyright BalaBit IT Security Ltd.
2 Table of Contents 1. Preface Configuring Zorp: ZMC vs. Python Configuring HTTPS proxying Enabling SSL-encryption in the connection HTTPS and non-transparent proxying One-sided SSL and HTTPS Configuring one-sided SSL Solving problems in one-sided HTTPS connections Name-based virtual hosting Enabling Windows update Python code summary Summary
3 Preface 1. Preface This tutorial provides guidelines for administrators on how to enable proxying HTTP traffic embedded into secure SSL and TLS connections. Knowledge in TCP/IP and administration is required to fully comprehend the contents of this paper. The procedures and concepts described here are applicable to version 5 of. Detailed information is provided to configure both from Zorp Management Console and using Python scripts. Note that explaining the concepts of the different aspects of SSL/TLS proxying is beyond the scope of this tutorial. For background information, see the following documents: For details on deriving and modifying proxies, see Section 6.6, Proxy classes in 5 Administrator Guide. For details on how SSL/TLS proxying works in, see the Technical White Paper Proxying the secure channels the secure socket layer. For details on configuring Zorp proxies to handle SSL/TLS connections, refer to the Technical Tutorial How to configure SSL proxying in Zorp. For an overview on certificates and related topics in connection with Zorp, see Chapter 11, Key and certificate management in Zorp in 5 Administrator Guide. For details on the available attributes of the Zorp HTTP proxy that you can adjust and modify to best suit your needs, see Section 4.7, Module Http in 5 Reference Guide You can download the above documents at the BalaBit Documentation Page Configuring Zorp: ZMC vs. Python Zorp can be fully configured using either the graphical Zorp Management Console (ZMC) or manually by editing plain text Python configuration files. The suggestions and background information provided in this tutorial are equally applicable to both methods. Step-by-step explanation with screenshots is given for ZMC-based configuration, while sample Python code lines can be found at the end of each step. After replacing the sample parameters (for example, IP addresses) with proper ones for your actual configuration, add these lines to the policy file of Zorp (usually found under /etc/zorp/policy.py). Also pay attention to the proper indentation of Python code lines. For more details, see Chapter 10, Local firewall administration in 5 Administrator Guide. If you are using the Zorp Management Console and you want to display the Python code generated by ZMC, select a host, then select Configuration > Viewfrom the main menu. 3
4 Configuring HTTPS proxying 2. Configuring HTTPS proxying For proxying HTTPS connections, a properly configured HTTP proxy is required. The HTTP proxy will handle the external SSL/TLS connection and analyze the HTTP traffic embedded into the encrypted SSL/TLS channel. Two basic scenarios a transparent and a non-transparent one will be discussed. The best way is to derive own proxy classes from the default ones and modify their parameters as required. For details on deriving and modifying proxies, see Section 6.6, Proxy classes in 5 Administrator Guide Procedure Enabling SSL-encryption in the connection Purpose: To proxy HTTPS connections, you have to configure an HTTP proxy to handle SSL connections. The proxy will be configured to require the client and the server to use strong encryption algorithms, the use of weak algorithms will not be permitted. This configuration will enable connections only to servers with certificates signed by trusted CAs. (For details on managing trusted CA groups, see Section , Managing trusted groups in 5 Administrator Guide.) Complete the following steps. Steps: Step 1. Generate keys for your Zorp firewall. The Zorp firewall requires its own certificate and keypair to perform SSL/TLS proxying. In ZMC, create a certificate, set the firewall as the owner host of the certificate, then distribute it to the firewall host. For details, see Chapter 11, Key and certificate management in Zorp in 5 Administrator Guide. In configurations managed manually from python, create an X.509 certificate (with its related keypair) using a suitable software (for example, OpenSSL) and deploy it to the Zorp firewall host (for example, copy it to the /etc/key.d/mycert folder). Step 2. Create an own proxy class to handle HTTPS connections. Complete the following steps. Step a. Navigate to the Zorp ZMC component of the Zorp host. Step b. Select the Proxies tab, then click New. 4
5 Configuring HTTPS proxying Figure 1. Creating a new proxy Step c. Select the HttpProxy template from the left panel, and enter a name for the new class. Name this class HttpsProxy and click OK. Note that if you have already configured an HTTP proxy for your needs (for example, one that has virus-filtering enabled) use that instead of the HttpProxy template. 5
6 Configuring HTTPS proxying Figure 2. Selecting a proxy template class HttpsProxy(HttpProxy): def config(self): HttpProxy.config(self) Step d. Select the proxy class you have created in the previous step, then click New in the Changed config attributes panel. 6
7 Configuring HTTPS proxying Step e. Figure 3. Setting proxy attributes Select the self.ssl.client_keypair_files attribute, then click Fill. 7
8 Configuring HTTPS proxying Step f. Figure 4. Setting the certificate for the connection Select the self.ssl.client_keypair_files attribute, then click Edit. A window displaying the certificates owned by the host will be displayed. The lower section of the window shows the information contained in the certificate. Select the certificate that you want Zorp show to the clients, then click Select. That way it is possible to specify the location of the files containing the certificate and the private key in a single step. In Python, the above parameters can be set either as a single or in two separate attributes. self.ssl.client_cert = "/etc/key.d/mycert/mycert.pem" self.ssl.client_key = "/etc/key.d/mycert/myprivatekey.key" This is equivalent with adding the following attribute: self.ssl.client_keypair_files = ("/etc/key.d/mycert/mycert.pem", "/etc/key.d/mycert/myprivatekey.key") 8
9 Configuring HTTPS proxying Step g. Figure 5. Enabling SSL encryption for the peers Configure the proxy to use SSL-encryption on both the server and the client side. Add the self.ssl.client_connection_security parameter to the Changed config attributes panel, click on the value appearing in the Type column, and select const_ssl_force_ssl. Repeat this step for self.ssl.server_connection_security as well. self.ssl.client_connection_security = SSL_FORCE_SSL self.ssl.server_connection_security = SSL_FORCE_SSL Step h. Disable mutual authentication. That way, the clients do not need to have a certificate. Add the self.ssl.client_verify_type parameter to the Changed config attributes panel, click on the value appearing in the Type column, and select const_ssl_verify_none. self.ssl.client_verify_type = SSL_VERIFY_NONE Step i. Specify the directory containing the certificates and CRLs of the trusted CAs. 9
10 Configuring HTTPS proxying Add the self.ssl.server_cagroup_directories parameter to the Changed config attributes panel, then click Edit, and select the trusted CA group to use for SSL proxying. The clients will be able to connect only those servers via SSL/TLS which have certificate signed by one of the CAs (or a lower level CA in the CA chain) included in this group. CAs cannot be referenced directly, only the trusted group containing them. For details on managing trusted groups, see Section , Managing trusted groups in 5 Administrator Guide. Similarly to the keypair files, the above parameters can be set either as a single or in two separate attributes. self.ssl.server_ca_directory = "/etc/ca.d/certs/" self.ssl.server_crl_directory = "/etc/ca.d/crls/" or self.ssl.server_cagroup_directories = \ ("/etc/ca.d/certs/", "/etc/ca.d/crls/") Step j. Select PKI > Distribute Certificates. Note when managing Zorp without ZMC, you must copy the certificates and CRLs to their respective directories. They are not updated automatically as in configurations managed by ZMC. By performing the above steps, you have configured the proxy to use the specified certificate and its private key, and also set the directory that will store the certificates of the trusted CAs and their CRLs. Client authentication has also been disabled. Step k. Optional Step: The Common Name in the certificate of a server or webpage is usually its domain name or URL. By default, Zorp compares this Common Name to the actual domain name it receives from the server, and rejects the connection if they do not match. That way it is possible to detect several types of false certificates and prevent a number of phishing attacks. If this mode of operation interferes with your environment, and you cannot use certificates that have proper Common Names, disable this option. Add the self.ssl.server_check_subject parameter to the Changed config attributes panel, then set it to FALSE. self.ssl.server_check_subject=false Step l. Optional Step: Forbid the use of weak encryption algorithms to increase security. The related parameters can be set separately for the client and the server-side of Zorp. Disabling weak algorithms also eliminates the risk of downgrade attacks, where the attacker modifies the SSL session-initiation messages to force using weak encryption that can be easily decrypted by a third party. 10
11 Configuring HTTPS proxying Note Certain outdated operating systems, or old browser applications do not properly support strong encryption algorithms. If your clients use such systems or applications, you might have to permit weak encryption algorithms. Step i. Add the self.ssl.server_ssl_method parameter to the Changed config attributes panel, then set it to const_ssl_method_sslv3 or const_ssl_method_tlsv1. self.ssl.server_ssl_method = PSSL_METHOD_SSLV3 self.ssl.server_ssl_method = PSSL_METHOD_TLSV1 Step ii. SSL methods may occasionally fall back to older (thus weaker) protocol versions if one of the peers does not support the newer version. To avoid this situation, explicitly deny undesired protocol versions, such as SSLv2. Add the self.ssl.server_disable_proto_sslv2 parameter to the Changed config attributes panel, then set it to TRUE. self.ssl.server_disable_proto_sslv2 = TRUE Step iii. Forbid the use of weak ciphers. That way only ciphers with at least 128 bit keylength will be enabled. Add the self.ssl.server_ssl_cipher parameter to the Changed config attributes panel, then set it to SSL_CIPHERS_HIGH. self.ssl.server_ssl_cipher = SSL_CIPHERS_HIGH Step m. Optional Step: Enable untrusted certificates. Since a significant number of servers use self-signed certificates (with unverifiable trustworthiness), in certain situations you might need to permit access to servers that have untrusted certificates. Add the self.ssl.server_verify_type parameter to the Changed config attributes panel, then set it to SSL_VERIFY_REQUIRED_UNTRUSTED. self.ssl.server_verify_type = SSL_VERIFY_REQUIRED_UNTRUSTED Step 3. Create a service that clients can use to access the Internet in a secure channel. This service will use the HttpsProxy proxy class. Step a. Select Services > New, and enter a name for the service (for example, intra_https_inter). Step b. Select Proxy class > HttpsProxy. 11
12 Configuring HTTPS proxying Step c. Configure the other parameters of the service as needed for your environment, then click OK. Step d. Select Firewall Rules > New > Service, and select the service created in the previous step. For more details on creating firewall rules, see Section 6.5, Configuring firewall rules in 5 Administrator Guide. Step e. Configure the other parameters of the rule as needed for your environment, then click OK. def demo_instance() : Service(name='demo_instance/intra_HTTPS_inter', router=transparentrouter(), chainer=connectchainer(), proxy_class=httpsproxy, max_instances=0, max_sessions=0, keepalive=z_keepalive_none) Rule(rule_id=1, src_zone=('intra', ), dst_zone=('internet', ), proto=6, service='demo_instance/intra_https_inter' ) Step 4. Commit and upload your changes, then restart Zorp Procedure HTTPS and non-transparent proxying Purpose: The method described in Procedure 2.1, Enabling SSL-encryption in the connection (p. 4) can be used when the connections of the clients are proxied transparently. In the non-transparent case, you have to use two HttpProxy classes. (A connection is non-transparent if the clients address Zorp directly, and Zorp selects the target.) Steps: Step 1. Create and configure a transparent Http proxy to handle HTTPS connections as described in Steps 1-4 of Procedure 2.1, Enabling SSL-encryption in the connection (p. 4). If you have already created and configured a transparent HTTPS proxy, skip this step. Step 2. Navigate to Zorp > Proxies, and create a non-transparent HTTP proxy using the predefined HttpProxyNonTransparent proxy class. Name this new class, for example, HttpSProxyNonTransparent. Step 3. Select this newly created proxy (for example, HttpSProxyNonTransparent) and add the self.request attribute to the Changed config attributes panel. To configure the self.request attribute, complete the following steps. Step a. Select the attribute and click Edit. Step b. To accept every request types, enter the * (asterisk) character, then click OK. Alternatively, you can add the request types you want to permit. It is recommended to enable the GET, POST, HEAD, and CONNECT requests. Step c. Click on the text in the Type field, then select const_http_req_accept. 12
13 Configuring HTTPS proxying Step 4. Add the self.connect_proxy attribute to the Changed config attributes panel, then click Edit. Select the proxy to be used for the HTTPS connections from the appearing list (for example, StrongHttpsProxy). Note This proxy is needed to handle the SSL data communicated in the plain-text nontransparent HTTP connection. If you do not want to examine that this traffic is indeed HTTP traffic, you can use a simple PlugProxy configured to handle SSL connections as well. class HttpSProxyNonTransparent(HttpProxyNonTransparent): def config(self): HttpProxyNonTransparent.config(self) self.connect_proxy=stronghttpsproxy self.request["*"]=http_req_accept Step 5. Create a service that clients can use to access the Internet in a secure channel. This service will use the non-transparent Http proxy class (for example, HttpSProxyNonTransparent) created in Step 2. Create a service that clients can use to access the Internet. Step a. Select Services > New, and enter a name for the service (for example, intra_http_inter). Step b. Select Proxy class > HttpSProxyNonTransparent. Step c. Select a Router for the service. Note the following points: When non-transparently proxying HTTP traffic without any parent proxy, the Service must use InbandRouter. If you are using a parent proxy (that is, your clients connect to a web proxy like Squid through Zorp), you can use DirectedRouter or InbandRouter. You can use InbandRouter only if the parent_proxy and parent_proxy_port parameters are properly configured. If Zorp is located network-transparently in front of the proxy server, even TransparentRouter can be used. For further details on Routers, see Section 6.4.5, Routing selecting routers and chainers in 5 Administrator Guide. Step d. Configure the other parameters of the service as needed for your environment, then click OK. Step e. Select Firewall Rules > New > Service, and select the service created in the previous step. Note If the clients connect directly to Zorp as a proxy, non-transparent service has to be used (using the same IP:port pair that is set on the clients). If Zorp is located in front of the parent proxy used by the clients, a transparent listener has to be used, even though the proxy class used in the service is non-transparent. 13
14 Configuring HTTPS proxying Step f. Configure the other parameters of the rule as needed for your environment, then click OK. Step 6. Commit and upload your changes, then restart Zorp. 14
15 One-sided SSL and HTTPS 3. One-sided SSL and HTTPS This section shows how you can solve various tasks and problems using one-sided HTTPS connections. By default, when proxying SSL/TLS connections, Zorp uses encrypted channels on the client and the server side. However, sometimes you want to use encryption only on the client (or the server) side for example, to decrease the load on the servers (SSL-offloading). Note that you might have to address certain issues and side-effects when using one-sided SSL. These are discussed in Section 3.2, Solving problems in one-sided HTTPS connections (p. 16) Procedure Configuring one-sided SSL Purpose: To disable encryption on one side of the connection for an existing proxy that is configured to handle HTTPS connections, complete the following steps. Note Obviously it is not possible to use keybridging together with one-sided SSL connections, but for a possible solution, see Procedure 3.2.3, Transferring certificate information in one-sided HTTPS (p. 17). Steps: Step 1. Navigate to Zorp > Proxies, and select the proxy to be modified, or create a new one (for example, OnesidedHttpsProxy). Step 2. To disable encryption on the client side, add the self.ssl.client_connection_security parameter to the Changed config attributes panel, then set it to const_ssl_none. To disable encryption on the server side, add the self.ssl.server_connection_security parameter to the Changed config attributes panel, then set it to const_ssl_none. Add one of the following lines to proxy: self.ssl.server_connection_security = SSL_NONE self.ssl.client_connection_security = SSL_NONE Step 3. When Zorp is used to protect the servers, you must deploy the certificate of the server (including its private key) to Zorp, so that Zorp can show the certificate to the clients that connect to the server. The proxy used in the connection must be configured to use this certificate when communicating with the clients. Complete the following steps. Step a. Import the certificate of the server into ZMS, and set the Zorp firewall to be its owner host. For details, see Procedure , Importing certificates in 5 Administrator Guide. Step b. Navigate to Zorp > Proxies, and select the proxy to be modified (for example, OnesidedHttpsProxy). Step c. Select (or add, if not already present) the self.ssl.server_keypair_files parameter, then click Edit. 15
16 Solving problems in one-sided HTTPS connections Step d. A window showing the certificates available on the host appears. Select the certificate of the server. Note The list displays only the certificates where the Zorp host is set as the owner host of the certificate (that is, both the certificate and its private key is available) Solving problems in one-sided HTTPS connections Using absolute URLs in one-sided SSL communication can pose problems and should be avoided whenever possible (relative links will work without any problem). A URL starts with on the non-encrypted side should be https://www... on the encrypted side. Certain applications can be configured to use HTTPS links in the HTTP requests instead of normal HTTP. If your environment uses an application that cannot be configured this way, see the following procedures for a possible solution Procedure Microsoft Outlook Web Access Purpose: Outlook Web Access (OWA) can generate HTTPS links if it receives a special header in the request. This header notifies OWA that it is located behind an HTTPS frontend. Zorp can be configured to insert this header automatically. Complete the following steps. Steps: Step 1. Navigate to Zorp > Proxies, and derive an HttpProxy class (for example, OWAHttpProxy) from an Http proxy configured to handle one-sided SSL connections. Step 2. Add the self.request_header attribute to the Changed config attributes panel. Step 3. Select the newly added attribute, then select Edit > New. Step 4. Enter Front-End-Https for the key name. This will be the name of the header inserted into the requests. Step 5. Select the Type column, then select type_http_hdr_insert. Step 6. Click Edit, then select the second row (the one with qstring in its Type column). Step 7. Click Edit, then enter on. This will be the content of the inserted header. self.request_header["front-end-https"]=(http_hdr_insert, "on") Step 8. Create a service that will use this new proxy (for example, OWAHttpProxy) Procedure Using sed in one-sided HTTPS Purpose: 16
17 Solving problems in one-sided HTTPS connections If a server application does not support secure connections, or uses absolute links and this behavior cannot be modified, Zorp can change the URLs in the traffic. This can be accomplished by stacking a sed (stream editor) Linux command (or if needed, a complete shell script) into the proxy. Steps: Step 1. Navigate to Zorp > Proxies, and select the HTTP proxy configured to handle one-sided SSL connections, or create a new one (for example, HttpSedProxy). Step 2. Add self.response_stack attribute to the Changed config attributes panel, then click Edit. (You need the self.response_stack attribute, because the response of the server has to be changed.) Step 3. Click New, then enter *. Step 4. Select the Type column, then select type_http_stk_data. Step 5. Click Edit, select the row containing zorp_stack, then click Edit again. Step 6. Select Stacking type > Program, and enter the command to be executed: sed -e 's https:// g' For details on the sed command, see the sed manual pages. Note The example sed command modifies all absolute links that appear in the traffic, that is, even links pointing to an external site will be modified. If possible, use at least the full domain name of the server in the sed command to avoid this problem (for example, sed -e 's https://www.example.com g'). Be as specific as possible. self.response_stack["*"]=(http_stk_data, (Z_STACK_PROGRAM, "sed -e 's https:// g'")) Step 7. Create a service that will use this new proxy (for example, HttpSedProxy) Procedure Transferring certificate information in one-sided HTTPS Purpose: Client authentication in HTTPS is sometimes based on inspecting the certificate of the client. When Zorp is protecting the server, keybridging can be used to transfer the information from the client certificate to the server. However, in one-sided SSL connections (for example, if the communication between Zorp and the server is not encrypted), the server does not receive an SSL certificate, therefore user authentication must use another method. A simple solution to this problem is the following. Zorp requests a certificate from the client the usual way, extracts the required information from the client certificate, then inserts this information into an HTTP header. The server then authenticates the user based on the information received in the HTTP header. To accomplish this, you must create a special HttpProxy using the Class editor. Steps: Step 1. Navigate to the Zorp ZMC component, and click on the Class editor icon in the menu bar. Step 2. Click New, then select the General tab. 17
18 Name-based virtual hosting Step 3. Enter a name for the class (for example, HttpsCertProxy). Step 4. Select Parent class > OnesidedHttpsProxy. Step 5. Select Class type > proxy. Step 6. Type or paste the following Python code. Based on these settings, the header of the proxy class will be generated automatically into the Source code field. You have to type the remaining part manually, or paste it from this document. Warning The source code has to confirm to the syntax requirements of the Python language. Handle indentation with great care, since in Python indentation forms the blocks of code that are on the same level (many other languages use brackets for this purpose, for example, C uses curly brackets). def config(self): OnesidedHttpsProxy.config(self) self.request_header["x-user-certificate"]=\ (HTTP_HDR_INSERT, self.ssl.client_peer_certificate.subject) Step 7. Click OK and Close. Step 8. Create a service that will use this new proxy (for example, HttpsCertProxy), or modify an existing one Name-based virtual hosting Name-based virtual hosting is a method to provide services under multiple domain names from a single server (that is, several different domain names point to the same IP address). When receiving an HTTP request, the server decides which domain should receive the connection based on the "Host" header of the HTTP request. Each domain has its own certificate for secure connections. The problem is that the SSL/TLS connection is built before the client sends the first HTTP request: the server should show the certificate of the appropriate domain before receiving the HTTP header specifying the domain name. This situation can be solved by either assigning a separate IP address to each domain name, or using IP aliasing. If IP aliasing is not feasible for some reason, Zorp can be configured to overcome this problem by modifying the target address of the connection based on information arriving in the HTTP request. This solution requires a special Http proxy. In the following example (Procedure 3.3.1, Configuring name-based virtual hosting (p. 19)), Zorp determines the target address of the HTTPS connection based on the "Host" header. Note that any other information present in the HTTP traffic can be used for such purpose. For example, it is possible to direct different GET requests to different servers (for example, requests to are directed to Server1, but is redirected to Server2). It is also possible to use different servers to serve the static and the dynamic contents (for example, by redirecting all requests to get jpg, gif, and similar files to a separate server). 18
19 Name-based virtual hosting Note Although the connections can be redirected to different servers, only a single certificate can be shown to the clients, because Zorp must send the client-side certificate to the client before the client sends the first HTTP request. Consequently, Zorp cannot determine the target address at this stage Procedure Configuring name-based virtual hosting Purpose: To configure an HttpProxy in a name-based virtual hosting scenario that determines the address of the target server from the HOST header of the HTTP request, complete the following steps. Note IMPORTANT: If name-resolution in Zorp is correctly configured to use a split-dns (that is, if the DNS used by Zorp returns the desired target addresses when resolving the domain name received in the Host header), you can use a simple one-sided HTTPS proxy and a service using InbandRouter, because that way Zorp will always connect to the address resolved from the Host header. If you cannot use split-dns for some reason, complete the following steps. Steps: Step 1. Navigate to the Zorp ZMC component, and click on the Class editor icon in the menu bar. Step 2. Click New, then select the General tab. Step 3. Enter a name for the class (for example, HttpProxyTargetByHostHeader). Step 4. Select Parent class > HttpsProxy. Step 5. Select Class type > proxy. Step 6. Type or paste the following Python code, and modify the domain names, IP addresses, and keypair files as needed. The sample will accept and direct incoming connections to two servers (example.com and example2.com), and drop any other connections. Based on these settings, the header of the proxy class will be generated automatically into the Source code field. You have to type the remaining part manually, or paste it from this document. Warning The source code has to confirm to the syntax requirements of the Python language. Handle indentation with great care, since in Python indentation forms the blocks of code that are on the same level (many other languages use brackets for this purpose, for example, C uses curly brackets). class HttpProxyTargetByHostHeader(HttpProxy): def config(self): HttpProxy.config(self) self.request_header["host"]=(http_hdr_policy,\ self.targetbyhostheader) self.ssl.client_connection_security=ssl_force_ssl self.ssl.server_connection_security=ssl_none self.ssl.server_keypair_files = \ 19
20 Name-based virtual hosting ("/etc/key.d/sample Certificate/cert.pem",\ "/etc/key.d/sample Certificate/key.pem") def TargetByHostHeader(self, name, value): if (value == "example.com"): self.session.setserver(sockaddrinet(" ", 80)) return HTTP_HDR_ACCEPT elif (value == "example2.com"): self.session.setserver(sockaddrinet(" ", 80)) return HTTP_HDR_ACCEPT return HTTP_HDR_ABORT Step 7. Click OK and Close. Step 8. Create a service that uses this new proxy class. 4. Procedure Enabling Windows update Purpose: To enable Windows update for the clients protected by the Zorp firewall, you have to import the certificate of the Zorp CA that signs the certificates in keybridging into the client machines. To accomplish this, complete the following steps on the client hosts. Note An alternative to this solution is to disable SSL-proxying for the v4.windowsupdate.microsoft.com domain. This method is described in detail in the Technical Tutorial Proxying secure channels the Secure Socket Layer. The advantage of the alternative method is that you do not need to modify the client hosts. Prerequisite: You will need the certificate of the Zorp CA that signs the certificates in keybridging into the client machines. Export this certificate from ZMS, and make it available on your client hosts. Steps: Step 1. Start the Microsoft Management Console (Start Menu > Run application > MMC). Step 2. Select File > Add/Remove Snap-in. Step 3. Click Add, then select Certificates. Step 4. Select Computer account, then click Next. Step 5. Select Local computer and click Finish. The Certificates module has been added to the Console Root tree. Step 6. Expand the Certificates node, then expand the Trusted Root Certification Authorities node. Right-click on the Certificates node, select All Tasks, then click Import. Step 7. Click Next on the Welcome to the Certificate Import Wizard page. On the File to Import page, click Browse, and locate the certificate of the Zorp CA to be imported. Step 8. On the Certificate Store page, accept the default setting (Place all certificates in the following store), click Next, then Finish. 20
21 Name-based virtual hosting Note Zorp must be able to verify the certificates of the Windows Update servers. To accomplish this, the certificates of the certificate authorities (CAs) issuing the certificates of the Windows update servers have to be imported into Zorp, if not already present. The following certificates have to be imported (Zorp versions 3.4 and newer includes these certificates by default): Microsoft Secure Server Authority Microsoft Internet Authority GTE CyberTrust Global Root 21
22 Python code summary 5. Python code summary When configured according to this tutorial, the policy.py file of Zorp should look something like this: Configuring HTTPS proxying: class HttpsProxy(HttpProxy): def config(self): HttpProxy.config(self) self.ssl.client_keypair_files=\ ("/etc/key.d/certificate_for_ssl_proxying/cert.pem",\ "/etc/key.d/certificate_for_ssl_proxying/key.pem") self.ssl.client_verify_type=ssl_verify_none self.ssl.client_connection_security = SSL_FORCE_SSL self.ssl.server_connection_security = SSL_FORCE_SSL self.ssl.server_cagroup_directories= \ ("/etc/ca.d/groups/zms_trusted_ca/certs/",\ "/etc/ca.d/groups/zms_trusted_ca/crls/") self.ssl.server_disable_proto_sslv2=true Nontransparent version: class HttpSNonTransparent(HttpProxyNonTransparent): def config(self): HttpProxyNonTransparent.config(self) self.connect_proxy= HttpsProxy self.request["get"]=http_req_accept self.request["post"]=http_req_accept self.request["head"]=http_req_accept self.request["connect"]=http_req_accept One-sided HTTPS and Microsoft Outlook Web Access: class OnesidedHttpsProxy(HttpsProxy): def config(self): HttpsProxy.config(self) self.ssl.server_connection_security=ssl_none self.ssl.server_keypair_files = \ ("/etc/key.d/sample Certificate/cert.pem",\ "/etc/key.d/sample Certificate/key.pem") self.stack_proxy=(z_stack_proxy, OWAHttpProxy) class OWAHttpProxy(HttpProxy): def config(self): HttpProxy.config(self) self.request_header["front-end-https"]=(http_hdr_insert, "on") HTTP Proxy using stream editor class HttpSedProxy(OnesidedHttpsProxy): def config(self): OnesidedHttpsProxy.config(self) self.response_stack["*"]=(http_stk_data, (Z_STACK_PROGRAM, "sed -e 's https:// g'")) 22
23 Python code summary Transferring certificate information in an HTTP header class HttpsCertProxy(OnesidedHttpsProxy): def config(self): OnesidedHttpsProxy.config(self) self.request_header["x-user-certificate"]=(http_hdr_insert, self.ssl.client_peer_certificate.subject) Name-based virtual hosting and sidestacking: class HttpProxyTargetByHostHeader(HttpProxy): def config(self): HttpProxy.config(self) self.request_header["host"]=(http_hdr_policy, self.targetbyhostheader) self.ssl.client_connection_security=ssl_force_ssl self.ssl.server_connection_security=ssl_none self.ssl.server_keypair_files = \ ("/etc/key.d/sample Certificate/cert.pem",\ "/etc/key.d/sample Certificate/key.pem") def TargetByHostHeader(self, name, value): if (value == "example.com"): self.session.setserver(sockaddrinet(" ", 80)) return HTTP_HDR_ACCEPT elif (value == "example2.com"): self.session.setserver(sockaddrinet(" ", 80)) return HTTP_HDR_ACCEPT return HTTP_HDR_ABORT 23
24 Summary 6. Summary This tutorial has shown how to configure Zorp to proxy HTTPS traffic, including scenarios where only one side of the traffic is encrypted. Although these examples are relatively simple, they provide a solid base from which more complex configurations can be built just as the security policy of your organization requires it. All questions, comments or inquiries should be directed to or by post to the following address: BalaBit IT Security 1117 Budapest, Alíz Str. 2 Phone: Fax: Web: Copyright 2014 BalaBit IT Security Ltd. All rights reserved. The latest version is always available at the BalaBit Documentation Page. 24
How to configure SSL proxying in Zorp 6 April 17, 2015 Abstract This tutorial describes how to configure Zorp to proxy SSL traffic Copyright 1996-2015 BalaBit IT Security Ltd. Table of Contents 1. Preface...
Setting Up SSL on IIS6 for MEGA Advisor Revised: July 5, 2012 Created: February 1, 2008 Author: Melinda BODROGI CONTENTS Contents... 2 Principle... 3 Requirements... 4 Install the certification authority
Xerox Multifunction Devices Customer Tips June 5, 2007 This document applies to these Xerox products: X WC Pro 232/238/245/ 255/265/275 for the user Xerox Network Scanning HTTP/HTTPS Configuration using
Microsoft Exchange 2010 and 2007 Download the server certificate and intermediate certificates. Perform the following procedure for each of the intermediate certificates and then for the server certificate.
12/15/2012 WALISYSTEMSINC.COM SETUP SSL IN SHAREPOINT 2013 (USING SELF-SIGNED CERTIFICATE) Setup SSL in SharePoint 2013 In the last article (link below), you learned how to setup SSL in SharePoint 2013
Wavecrest InstallationGuide Wavecrest Certificate www.wavecrest.net Copyright Copyright 1996-2015, Wavecrest Computing, Inc. All rights reserved. Use of this product and this manual is subject to license.
Dell SupportAssist Version 2.0 for Dell OpenManage Essentials Quick Start Guide Notes, Cautions, and Warnings NOTE: A NOTE indicates important information that helps you make better use of your computer.
M-FILES CORPORATION ENABLING RPC OVER HTTPS CONNECTIONS TO M-FILES SERVER VERSION 2.3 DECEMBER 18, 2015 Page 1 of 15 CONTENTS 1. Version history... 3 2. Overview... 3 2.1. System Requirements... 3 3. Network
Installing and Configuring vcenter Multi-Hypervisor Manager vcenter Server 5.1 vcenter Multi-Hypervisor Manager 1.1 This document supports the version of each product listed and supports all subsequent
DEPLOYMENT GUIDE Version 1.2 Deploying the BIG-IP System v10 with Microsoft IIS 7.0 and 7.5 Table of Contents Table of Contents Deploying the BIG-IP system v10 with Microsoft IIS Prerequisites and configuration
DEPLOYMENT GUIDE Version 2.1 Deploying F5 with Microsoft SharePoint 2010 Table of Contents Table of Contents Introducing the F5 Deployment Guide for Microsoft SharePoint 2010 Prerequisites and configuration
Secure Web Appliance SSL Intercept Table of Contents 1. Introduction... 1 1.1. About CYAN Secure Web Appliance... 1 1.2. About SSL Intercept... 1 1.3. About this Manual... 1 1.3.1. Document Conventions...
Outlook Web Access Guide to Installing Root Certificates, Generating CSR and Installing SSL Certificate Copyright. All rights reserved. Trustis Limited Building 273 New Greenham Park Greenham Common Thatcham
Configuring Security Features of Session Recording Summary This article provides information about the security features of Citrix Session Recording and outlines the process of configuring Session Recording
DEPLOYMENT GUIDE Version 1.2 Deploying the BIG-IP system v10 with Microsoft Exchange Outlook Web Access 2007 Table of Contents Table of Contents Deploying the BIG-IP system v10 with Microsoft Outlook Web
Demonstration Overview Introduction In preparation for this demonstration, the following computers have been configured: NYC-DC1 is an Active Directory Domain Services (AD DS) domain controller and DNS
NSi Mobile Installation Guide Version 6.2 Revision History Version Date 1.0 October 2, 2012 2.0 September 18, 2013 2 CONTENTS TABLE OF CONTENTS PREFACE... 5 Purpose of this Document... 5 Version Compatibility...
F5 Deployment Guide Deploying F5 with Microsoft Active Directory Federation Services This F5 deployment guide provides detailed information on how to deploy Microsoft Active Directory Federation Services
USING SSL/TLS WITH TERMINAL EMULATION This document describes how to install and configure SSL or TLS support and verification certificates for the Wavelink Terminal Emulation (TE) Client. SSL/TLS support
Solution for Controlling HTTPS SGOS 6.5 Third Party Copyright Notices 2014 Blue Coat Systems, Inc. All rights reserved. BLUE COAT, PROXYSG, PACKETSHAPER, CACHEFLOW, INTELLIGENCECENTER, CACHEOS, CACHEPULSE,
Stormshield Network Firewall Document version: 1.0 Reference: snentno_autobackup CONTENTS INTRODUCTION 3 OPERATION 3 Storing in the Mystormshield.eu client area 3 Storing on a customized server 3 FIREWALL
Spam Marshall SpamWall Step-by-Step Installation Guide for Exchange 5.5 What is this document for? This document is a Step-by-Step Guide that can be used to quickly install Spam Marshall SpamWall on Exchange
ADFS Integration Guidelines Version 1.6 updated March 13 th 2014 Table of contents About This Guide 3 Requirements 3 Part 1 Configure Marcombox in the ADFS Environment 4 Part 2 Add Relying Party in ADFS
Be secure in less than 4 hours CenterTools Software GmbH 2012 Copyright Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise
c623242f-20f0-40fe-b5c1-8412a094fdc7 Deploying Personal Virtual Desktops by Using RemoteApp and Desktop Connection Step-by-Step Guide Microsoft Corporation Published: June 2009 Updated: April 2010 Abstract
What is new in Zorp Professional 6 April 17, 2015 Copyright 1996-2015 BalaBit IT Security Ltd. Table of Contents 1. Preface... 3 2. Reusable Encryption policies... 4 3. Server Name Indication... 5 4. New
Installation and Configuration Guide Installation and configuration guide Adding X-Username support to Forward and Reverse Proxy TMG Servers Published: December 2010 Applies to: Winfrasoft X-Username for
etoken Enterprise For: SSL SSL with etoken System Requirements Windows 2000 Internet Explorer 5.0 and above Netscape 4.6 and above etoken R2 or Pro key Install etoken RTE Certificates from: (click on the
TECHNICAL PAPER Browser-based Support Console Mass deployment of certificate Netop develops and sells software solutions that enable swift, secure and seamless transfer of video, screens, sounds and data
DIGIPASS Authentication for Microsoft ISA 2006 Single Sign-On for Outlook Web Access With IDENTIKEY Server / Axsguard IDENTIFIER Integration Guidelines Disclaimer Disclaimer of Warranties and Limitations
Xerox Multifunction Devices Customer Tips March 15, 2007 This document applies to these Xerox products: X WC 4150 X WCP 32/40 X WCP 35/45/55 X WCP 65/75/90 X WCP 165/175 X WCP 232/238 X WCP 245/255 X WCP
About SSL Encryption Utility, page 1 About SSL Encryption Utility Unified ICM web servers are configured for secure access (HTTPS) using SSL. Cisco provides an application called the SSL Encryption Utility
Contents AD RMS Microsoft Federation Gateway Support Installation and Configuration Guide... 3 About this guide... 3 Microsoft Federation Gateway Support Overview... 4 Deploying and Configuring Microsoft
S/MIME on Good for Enterprise MS Online Certificate Status Protocol Installation and Configuration Notes Updated: October 08, 2014 Installing the Online Responder service... 1 Preparing the environment...
WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide This document is intended to help you get started using WebSpy Vantage Ultimate and the Web Module. For more detailed information, please see
ProxyCap Help 2015 Proxy Labs Table of contents Configuring ProxyCap The Ruleset panel Loading and saving rulesets Delegating ruleset management The Proxies panel The proxy list view Adding, removing and
App Orchestration 2.0 Configuring NetScaler Load Balancing and NetScaler Gateway for App Orchestration Prepared by: Christian Paez Version: 1.0 Last Updated: December 13, 2013 2013 Citrix Systems, Inc.
DEPLOYMENT GUIDE Version 1.2 Deploying the BIG-IP System v9.x with Microsoft IIS 7.0 and 7.5 Deploying F5 with Microsoft IIS 7.0 and 7.5 F5's BIG-IP system can increase the existing benefits of deploying
User Manual Onsight Management Suite Version 5.1 Another Innovation by Librestream Doc #: 400075-06 May 2012 Information in this document is subject to change without notice. Reproduction in any manner
Exchange 2010 PKI Configuration Guide Overview 1. Summary 2. Environment 3. Configuration a) Active Directory Configuration b) CA Configuration c) Exchange Server IIS Configuration d) Exchange Configuration
Install MS SQL Server 2012 Express Edition Sohodox now works with SQL Server Express Edition. Earlier versions of Sohodox created and used a MS Access based database for storing indexing data and other
Software Version 9.0 Copyright Copyright 1996-2008. Finjan Software Inc. and its affiliates and subsidiaries ( Finjan ). All rights reserved. All text and figures included in this publication are the exclusive
Entrust Managed Services PKI Auto-enrollment Server 7.0 Installation and Configuration Guide Document issue: 1.0 Date of Issue: July 2009 Copyright 2009 Entrust. All rights reserved. Entrust is a trademark
ez Agent Administrator s Guide Copyright This document is protected by the United States copyright laws, and is proprietary to Zscaler Inc. Copying, reproducing, integrating, translating, modifying, enhancing,
Installing and Configuring vcloud Connector vcloud Connector 2.7.0 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new
Pre-configured AS2 Host Quick-Start Guide Document Version 2.2, October 19, 2004 Copyright 2004 Cleo Communications Refer to the Cleo website at http://www.cleo.com/products/lexihubs.asp for the current
Deploying F5 to Replace Microsoft TMG or ISA Server Welcome to the F5 deployment guide for configuring the BIG-IP system as a forward and reverse proxy, enabling you to remove or relocate gateway security
CA NetQoS Performance Center Install and Configure SSL for Windows Server 2008 Release 6.1 (and service packs) This Documentation, which includes embedded help systems and electronically distributed materials,
Enable SSL for Apollo 2015  Obtain proper SSL certificate *.pfx (contains both certificate and private keys) For example, the pfx file contains both certificate and private keys, also the ascii file
Installation and Configuration Guide Installation and configuration guide Adding X-Forwarded-For support to Forward and Reverse Proxy TMG Servers Published: May 2010 Applies to: Winfrasoft X-Forwarded-For
Deploying SSTP using OTP Version TBD How-To Guide June 2011 Copyright 2010 SafeNet, Inc. All rights reserved. All attempts have been made to make the information in this document complete and accurate.
[Editor s Note: The following content was excerpted from the free ebook The Tips and Tricks Guide to Securing Windows Server 2003 (Realtimepublishers.com) written by Roberta Bragg and available at http://www.netiq.com/offers/ebooks.]
Certificate Request Generation and Certificate Installation Instructions for IIS 5 April 14, 2006 1 1. Generating the Certificate Request In this procedure, you will use the Internet Information Services
Avaya one X Portal 1.1.3 Lightweight Directory Access Protocol (LDAP) over Secure Socket Layer (SSL) Configuration This document provides configuration steps for Avaya one X Portal s 1.1.3 communication
Network Security Using a Windows Enterprise Root CA with DPI-SSL Contents Overview... 1 Deployment Considerations... 2 Configuration Procedures... 3 Importing the Public CA Certificate for Trust... 3 Importing
Obtaining SSL Certificates for VMware Horizon View Servers View 5.2 View Composer 5.2 This document supports the version of each product listed and supports all subsequent versions until the document is
Ekran System Help File Table of Contents About... 9 What s New... 10 System Requirements... 11 Updating Ekran to version 4.1... 13 Program Structure... 14 Getting Started... 15 Deployment Process... 15
Configuring NetScaler 10.5 Load Balancing with StoreFront 2.5.2 and NetScaler Gateway for Prepared by: James Richards Last Updated: August 20, 2014 Contents Introduction... 3 Configure the NetScaler load
Desktop Surveillance Help Table of Contents About... 9 What s New... 10 System Requirements... 11 Updating from Desktop Surveillance 2.6 to Desktop Surveillance 3.2... 13 Program Structure... 14 Getting
TIBCO Spotfire Web Player 6.0 Installation and Configuration Manual Revision date: 12 November 2013 Important Information SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED
Trend Micro Incorporated reserves the right to make changes to this document and to the products described herein without notice. Before installing and using the software, please review the readme files,
Tenrox Single Sign-On (SSO) Setup Guide January, 2012 2012 Tenrox. All rights reserved. About this Guide This guide provides a high-level technical overview of the Tenrox Single Sign-On (SSO) architecture,
Investment Management System Connectivity Guide IMS Connectivity Guide Page 1 of 11 1. Introduction This document details the necessary steps and procedures required for organisations to access the Homes
USER GUIDE WWPass Security for Email (Outlook) For WWPass Security Pack 2.4 March 2014 TABLE OF CONTENTS Chapter 1 Welcome... 4 Introducing WWPass Security for Email (Outlook)... 5 Supported Outlook Products...
APPENDIXC Reference and Troubleshooting: FTP, IIS, and Firewall Information Although Cisco VXC Manager automatically installs and configures everything you need for use with respect to FTP, IIS, and the
TABLE OF CONTENTS Recommended Browsers for isupplier Portal Recommended Microsoft Internet Explorer Browser Settings (MSIE) Recommended Firefox Browser Settings Recommended Safari Browser Settings SYSTEM
Decryption Palo Alto Networks PAN-OS Administrator s Guide Version 6.0 Contact Information Corporate Headquarters: Palo Alto Networks 4401 Great America Parkway Santa Clara, CA 95054 www.paloaltonetworks.com/company/contact-us
NEFSIS TRAINING SERIES Nefsis Dedicated Server version 5.2.0.XXX (DRAFT Document) Requirements and Implementation Guide (Rev5-113009) REQUIREMENTS AND INSTALLATION OF THE NEFSIS DEDICATED SERVER Nefsis
Apache Server Implementation Guide 340 March Road Suite 600 Kanata, Ontario, Canada K2K 2E4 Tel: +1-613-599-2441 Fax: +1-613-599-2442 International Voice: +1-613-599-2441 North America Toll Free: 1-800-307-7042
DEPLOYMENT GUIDE Version 1.1 Deploying the BIG-IP LTM v10 with Citrix Presentation Server 4.5 Table of Contents Table of Contents Deploying the BIG-IP system v10 with Citrix Presentation Server Prerequisites
How to configure Sophos UTM Web Application Firewall for Microsoft Exchange connectivity This article explains how to configure your Sophos UTM 9.2 to allow access to the relevant Microsoft Exchange services
Bitrix Site Manager ASP.NET Installation Guide Contents Introduction... 4 Chapter 1. Checking for IIS Installation... 5 Chapter 2. Using An Archive File to Install Bitrix Site Manager ASP.NET... 7 Preliminary
Using a reverse proxy server for TAD4D/LMT Intended audience The intended recipient of this document is a TAD4D/LMT administrator and the staff responsible for the configuration of TAD4D/LMT agents. Purpose
TIBCO Spotfire Automation Services 6.5 Installation and Deployment Manual Revision date: 17 April 2014 Important Information SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED
Your consent to our cookies if you continue to use this website.