![]() |
Copyright © Cloud Software Group, Inc. All Rights Reserved |
See Generate Private Keys And Public Certificates with OpenSSL to generate the private keys and public certificates.Enabling the SSL communication requires the mod_ssl Apache module. The mod_ssl Apache module provides strong encryption using the secure sockets layer (SSL) and transport layer security (TLS) protocols for the HTTP communication between a client and the Apache HTTP server. Using SSL/TLS, a private connection between the Apache HTTP server and the client is established. Data integrity is ensured and the client is able to authenticate the server. In this case, the Apache HTTP server sends its digital certificate to the client before any request is processed.The mod_ssl Apache module on the server guarantees to the client that the server is an uniquely correct end point for the communication.The client uses the public key contained in the digital certificate to encrypt the communication between the client and the server. The mod_ssl Apache module does not implement the SSL/TSL protocols itself, but it acts as an interface between the Apache module and the OpenSSL library.The SSLVerifyClient directive defines the verification type. The possible values are as follows:
− none: indicates that no client certificate is required at all.
− optional: indicates that the client may present a valid certificate.
− require:indicates that the client has to present a valid certificate.The require value is used to ensure that the Apache HTTP server authenticates every client request before it forwards it to TIBCO API Exchange Gateway.
− optional_no_ca: indicates that the client may present a valid certificate but does not have to be successfully verified.The SSLVerifyDepth directive specifies the depth of the certificate issuer chains verification. If the server does not find a trusted Certificate Authority (CA) within this depth, it declares the certificate invalid. The depth actually is the maximum number of intermediate certificate issuers, that is, the maximum number of CA certificates that is followed while verifying the client certificate. For example, Depth 0 (zero) means that all clients must present certificates that are self-signed and present in the server's collection of trusted certificates. Depth 1 means that client certificates may be either self-signed (as previously mentioned), or signed by a trusted CA. The default value is 1.The SSLCACertificatePath directive specifies the path to a directory containing certificate authority’s digital certificate files. Each digital certificate has a separate file. However, when you use this SSLCACertificatePath directive, the Apache HTTP server expects that each file be named with the hash of the CA certificate that is in it, followed by a period and a sequence number that starts at 0 and gets incremented for each file. The Apache server expects this for efficiency reasons. When you have a large number of CA certificates, it becomes inefficient to open and read every file in the directory every time it needs to find a specific certificate.
Configuring the SSLCACertificateFile directive is easy. As the number of trusted certificate authorities increases, it can be difficult or error prone to add, replace, or remove CA certificates in this file. When the number of trusted certificate authorities is large, using the SSLCACertificatePath directive is recommended.See Configuring Client Authentication with Digital Certificates on Apache HTTP Server for configuration steps.
TIBCO API Exchange Gateway retrieves the client’s identity from the two custom HTTP header fields CAissuer and SerialNumber. The CAissuer field contains the distinguished name of the certificate authority that issued the client certificate. The distinguished name provides the unique identification of that certificate authority. The SerialNumber HTTP header contains the unique identification of the client in the context of a TIBCO API Exchange Gateway partner. This could either be the client certificate’s serial number, or the certificate’s subject distinguished name.When TIBCO API Exchange Gateway receives a request that includes these two HTTP header fields, it identifies the partner by matching the values in these two HTTP header fields with the Partner CA Issuer and Partner Serial Number fields in the Partner tab configuration of the Config UI. The Partner CA Issuer contains the identity realm and the Partner Serial Number represents the partner’s identity for that realm.
The following configuration setup is required on the Apache HTTP server so that TIBCO API Exchange Gateway can identify a partner based on the CAissuer and SerialNumber HTTP header fields:Configure the SSL engine options to export the standard SSL/TLS related SSL_* environment variables. This makes the client certificate information available in the Apache server for further reference in the request processing steps. This includes the issuer distinguished name, the certificate serial number, and the subject distinguished name.
• Enable mod_headers moduleEnable the mod_headers module to control and modify the HTTP request and response headers.
• Set RequestHeader directivesSet the RequestHeader directives that add specific CAissuer and SerialNumber HTTP headers to the incoming request. The header values are populated with the values retrieved from the SSL environment variables including the issuer distinguished name, the certificate serial number, or the subject distinguished name.See Configure Client Certificate Identification Details On Apache HTTP Server for configuration steps.See Registering Partners On Config UI for the procedure on configuration.
![]() |
Copyright © Cloud Software Group, Inc. All Rights Reserved |