> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Secure your network connections

> Secure ABBYY FlexiCapture connections with HTTPS, Mutual SSL, and TLS 1.2, and protect links to the database and file storage across system components.

For secure transfer of data among ABBYY FlexiCapture components, a secure network connection is required.

## <a id="sbp-https" />Secure your connection with HTTPS

By default, ABBYY FlexiCapture is configured to use the HTTP protocol, which is only recommended for staging, testing or demo environments.

<Note>
  The HTTP protocol is also used to transmit data between the Web Scanning Station and the ABBYY Scanning Plugin, since the scanning plugin is designed exclusively to be deployed locally on the user's machine.
</Note>

For production use, HTTPS must be used to protect sensitive data.

<Frame>
  <img src="https://mintcdn.com/abbyy/XVEmG3cTpHwMKf5X/images/flexi-capture/SecurityBestPractice.png?fit=max&auto=format&n=XVEmG3cTpHwMKf5X&q=85&s=4936e5721ee8fc4a06e3415a3ba1bb22" alt="Diagram showing ABBYY FlexiCapture clients connecting over HTTPS through a firewall and a 1 Gb/s network switch to the Application Server and FlexiCapture Processing Stations." width="3016" height="1975" data-path="images/flexi-capture/SecurityBestPractice.png" />
</Frame>

To use HTTPS, enable SSL support in the IIS settings.

To work with IIS over HTTPS, you need to obtain a certificate for the server. For more information about managing certificates, see [this section of the Microsoft website](https://technet.microsoft.com/en-us/library/cc754122.aspx).

In the IIS settings, specify the HTTPS protocol for the default website:

<Steps>
  <Step title="Open IIS Manager">
    Run the IIS Manager console from the Control Panel.
  </Step>

  <Step title="Open the site bindings">
    Select **Default Web Site** and click **Bindings** in the **Actions** pane.

    <Frame>
      <img src="https://mintcdn.com/abbyy/39LtOHLEp1q7pm1x/images/flexi-capture/Bindings.png?fit=max&auto=format&n=39LtOHLEp1q7pm1x&q=85&s=ac79ae84e23e84bc4697c8e72630f845" alt="Screenshot of IIS Manager with Default Web Site selected and the Bindings action highlighted in the Actions pane." width="906" height="539" data-path="images/flexi-capture/Bindings.png" />
    </Frame>
  </Step>

  <Step title="Add an HTTPS binding">
    In the dialog box that opens, click **Add** and select **https** from the **Type** drop-down list.
  </Step>

  <Step title="Select the SSL certificate">
    From the **SSL Certificate** drop-down list, select a certificate and click **OK**.

    <Frame>
      <img src="https://mintcdn.com/abbyy/39LtOHLEp1q7pm1x/images/flexi-capture/Bindings_add.png?fit=max&auto=format&n=39LtOHLEp1q7pm1x&q=85&s=8099fe62f4ce95903e3c7ea96311d0d4" alt="Screenshot of the Add Site Binding dialog in IIS Manager with https selected as the type and an SSL certificate chosen." width="473" height="253" data-path="images/flexi-capture/Bindings_add.png" />
    </Frame>
  </Step>

  <Step title="Require SSL (optional)">
    If you want a site to be available via HTTPS only, select the site in the tree pane, double-click **SSL Settings** in the content pane, and select the **Require SSL** option.

    <Note>
      As client certificates are not verified, set the **Client certificates** option to **Ignore** when configuring SSL.
    </Note>
  </Step>
</Steps>

Once the certificate has been added, the Application Server address must be prefixed with “https” (that is, `https://<server name>`) and the name of each client machine connecting to the Application Server must match the name in the certificate.

You will need to specify the Application Server address on the Processing Server, on user stations, and on web stations.

To specify the Application Server address on the Processing Server:

<Steps>
  <Step title="Start the Processing Server Monitor">
    Start the Processing Server Monitor.
  </Step>

  <Step title="Open the Change Application Server dialog">
    Open the Processing Server shortcut menu and select **Change Application Server**.
  </Step>

  <Step title="Enter the address">
    In the dialog box that opens, specify the address: `https://<server name>`.
  </Step>
</Steps>

The Application Server address must also be specified when you start a user station or open a project.

When working on a web station, enter the URL in the following format: `https://<server_name>/FlexiCapture12/<web_station_name>`.

### TLS 1.2 for data encryption

ABBYY FlexiCapture 12 supports the TLS 1.2 protocol, which is the recommended encryption protocol for secure connections.

When connecting to ABBYY FlexiCapture, other protocols can be used at the operating system level. For detailed instructions on how to restrict the use of certain protocols, see [this section of the Microsoft website](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/manage-ssl-protocols-in-ad-fs).

## Secure your connection with Mutual SSL

By default, when configuring HTTPS, one-way SSL authentication is configured. This means that the client will verify the authenticity of the server certificate. You can make the connection more secure by using Mutual SSL, so that the client will verify the authenticity of the server certificate and the server will verify the authenticity of the client certificate.

To configure Mutual SSL for the Application Server, complete the following steps:

<Steps>
  <Step title="Set HTTPS as the protocol">
    In IIS, specify HTTPS as the protocol to be used for connections to the Application Server (see [Secure your connection with HTTPS](#sbp-https) above).
  </Step>

  <Step title="Require SSL for the server folder">
    For `Default Web Site\FlexiCapture12\Server`, select the **Require SSL** option in **SSL Settings**.
  </Step>

  <Step title="Require client certificates">
    For **Client certificates**, select the **Require** option.
  </Step>
</Steps>

Now a client will need to provide a certificate when connecting to the Application Server:

* **Project Setup Station and Verification Station**: No additional configuration is required. When connecting, the client will be asked to select a certificate to provide to the Application Server.
* **Processing Server and Processing Station**: Specify the thumbprint of the appropriate certificate in the registry. Locate `HKLM\Software\ABBYY\FlexiCapture\12.0\FlexiBr` in the registry and specify `<ClientCertificateThumbPrint>`.
* **Administration and Monitoring Console**: Specify which certificate to provide by modifying the `web.config` file with the following keys:

```
<add key="UseClientCertificate" value="True" />
<add key="ClientCertificateThumbprint" value="Certificate Thumbprint" />
```

<Note>
  The client certificate with the specified thumbprint must be stored in **Local Computer > Personal**, and the account providing the certificate must have permission to use it. For detailed information, see [this section of the Microsoft website](https://docs.microsoft.com/en-us/windows/desktop/winhttp/winhttpcertcfg-exe--a-certificate-configuration-tool).
</Note>

<Note>
  Mutual SSL cannot be configured for the Web Scanning Station or the Web Capture Station.
</Note>

## Secure your connection to the database and file storage

The Application Server interacts with the database and file storage.

<Frame>
  <img src="https://mintcdn.com/abbyy/XVEmG3cTpHwMKf5X/images/flexi-capture/SecurityBestPractice_2.png?fit=max&auto=format&n=XVEmG3cTpHwMKf5X&q=85&s=c5b429ecbe73296e481031f4b1289124" alt="Diagram showing the Application Server connected over a 1 Gb/s network switch to the File Storage and the Database." width="2391" height="1785" data-path="images/flexi-capture/SecurityBestPractice_2.png" />
</Frame>

To secure your connection to an SQL, SQL Azure, or Oracle database, we recommend using the TLS 1.2 encryption protocol. Configure TLS in the database:

* **SQL**: For detailed instructions, see [this section of the Microsoft website](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/enable-encrypted-connections-to-the-database-engine?view=sql-server-2017).
* **SQL Azure**: For detailed instructions, see [this section of the Microsoft website](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-security-overview).
* **Oracle**: For detailed instructions, see [this section of the Oracle website](https://docs.oracle.com/cd/B28359_01/network.111/b28530/asossl.htm#i1013323).
* **PostgreSQL**: For detailed instructions, see [this section of the PostgreSQL website](https://www.postgresql.org/docs/current/ssl-tcp.html).

The Application Server uses SMB protocols to interact with file storage. A number of security enhancements were introduced in SMB 3.0. For detailed information, see [this section of the Microsoft website](https://docs.microsoft.com/en-us/windows-server/storage/file-server/smb-security).
