# Configuring Bots

Setting up scan targets involves specifying the locations, systems or assets that automated bots will scan to identify and assess digital certificates. This ensures that certificates across your infrastructure are valid, up-to-date and correctly configured. The scan targets define which servers, applications or networks will be monitored. This section explains how to configure a CERTInext Bot for certificate discovery by defining where the Bot should scan (scan targets) and how often it should scan (scan schedule). This is the exact flow you follow from the UI: **Discovery Bots → Action → Configure.**

**Open the Bot Configuration Page**

• Navigate to Certificates → Discovery Bots.\
• Locate the Bot you want to configure.\
• Click Select Action → Configure.

<figure><img src="/files/1DnufynJWsp7hay1bmCa" alt=""><figcaption></figcaption></figure>

When you open Configure, you will see two major portions:

• **Bot Information**: confirms the bot identity, OS, purpose, and whether it is currently online/usable.\
• **Scan Targets**: where you configure each source type (Web/App servers, AWS, Cloudflare, F5, etc.) that the Bot will scan to discover certificates.

**Bot Information**

The Bot Information section is not just a “summary”. It tells you whether the Bot you selected is the correct one, whether it can run discovery and what capabilities it has based on its purpose and platform.

**\[1] Bot Name**

• This is the unique name of the Bot instance that was registered to CERTInext.\
• It usually reflects the host machine name / identifier (example shown in the screenshot: LAP443-1401261638).

**\[2] Bot Version**

• This is the agent version installed on the Bot machine (example shown: 2.4.0.0).

**\[3] OS**

• Displays the operating system running the Bot (example shown: Microsoft Windows 11).

**\[4] Purpose (Required Field)**

• The Bot is configured with a specific purpose; your screenshot shows Discovery and Provisioning.

**\[5] Status**

• This indicates whether the platform currently sees the Bot as usable (example shown: Active).

**Configure Scan Targets**

The Configure Scan Targets section defines where the CERTInext Bot will look for SSL/TLS certificates: servers, network devices, cloud platforms, directories and hardware modules.

**Scan Scheduling**

For every scan type, CERTInext lets you control when and how often SSL/TLS scans run on the configured targets.

• You can run a scan immediately (On Demand).\
• Or you can schedule scans to run automatically at Daily, Weekly or Monthly intervals.\
• Advanced Settings (when enabled) allow finer control of timing and recurrence.

Each configuration panel has a Scan Frequency section with the following options:

• On Demand\
• Daily\
• Weekly\
• Monthly

<figure><img src="/files/bCS1UEbtG1S8PrUlJsmR" alt=""><figcaption></figcaption></figure>

**\[1] Web / App Servers**

Scan SSL/TLS certificates exposed on web and application servers.

**Required Details**

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field (as in UI)</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">Enter FQDN, IP address or IP address range</td><td valign="top">Target host(s) to be scanned for certificates. Accepts FQDNs, single IPs, IP ranges or CIDR blocks.</td></tr><tr><td valign="top">Port Type</td><td valign="top">Choose Default ports or Custom TCP port for SSL/TLS discovery.</td></tr><tr><td valign="top">TCP Port</td><td valign="top">When Port Type is Custom, specify the TCP port to scan (for example 443, 8443).</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Add multiple hosts/ranges into a single scan configuration.</td></tr></tbody></table>

**Example Format**

You can define targets in any of the following forms:

• Single IP: 192.168.10.25\
• IP Range: 192.168.10.25-192.168.10.60\
• Subnet (CIDR): 192.168.10.0/24\
• Fully Qualified Domain Name (FQDN): app.example.com

**Example configuration:**

Enter FQDN, IP address or IP address range:

<figure><img src="/files/5OWU0ehTAZc0yiw3i104" alt=""><figcaption></figcaption></figure>

&#x20;app.example.com\
Port Type: Custom\
TCP Port: 8443

**\[2] File System**

Scan local or network-mounted file systems for certificate files.

**Required Details**

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">File System Path (optional)</td><td valign="top">Directory path to scan for certificate files (for example C:\certs or /var/certs). Can be left blank to scan default paths (depending on Bot configuration).</td></tr><tr><td valign="top">Scan Subfolders</td><td valign="top">When enabled, scans all subdirectories recursively under the specified path.</td></tr><tr><td valign="top">File Type*</td><td valign="top">One or more file extensions / categories to include (for example All, *.cer, *.pem, *.pfx, *.jks, *.crt).</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Add multiple paths with different filters.</td></tr></tbody></table>

**Example Format**

File System Path: C:\certificates\\\
Scan Subfolders: \[✓]\
File Type: All

<figure><img src="/files/zYthQuzLmtN6284Z42SM" alt=""><figcaption></figcaption></figure>

**\[3] Remote File System**

Scan remote shared folders using network credentials.

**Required Details**

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">IP Address*</td><td valign="top">IP of the remote file server hosting the share.</td></tr><tr><td valign="top">Share Path*</td><td valign="top">UNC or absolute path to the shared folder (for example \\fileserver\certshare or /mnt/share/certs).</td></tr><tr><td valign="top">Username*</td><td valign="top">Account used to authenticate against the remote share.</td></tr><tr><td valign="top">Password*</td><td valign="top">Password for the specified user.</td></tr><tr><td valign="top">File Type*</td><td valign="top">File formats to include in the scan.</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Add multiple remote shares per bot.</td></tr></tbody></table>

**Example Format**

IP Address: XX.XX.X.XX\
Share Path: \file-srv01\ssl-certs\
Username: cert\_example\
Password: fileexample\
File Type: All

<figure><img src="/files/xRmnBXPQypYPwY7TSiCA" alt=""><figcaption></figcaption></figure>

**\[4] SSH**

Discover and manage certificates stored on remote servers via SSH.

**Required Details**

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td><td valign="top"><strong>Example</strong></td></tr><tr><td valign="top">Host</td><td valign="top">Server IP address or hostname</td><td valign="top">XXX.X.XXX.XX</td></tr><tr><td valign="top">Username</td><td valign="top">SSH login username</td><td valign="top">Root</td></tr><tr><td valign="top">Password</td><td valign="top">SSH login password</td><td valign="top">MyServerPass123</td></tr><tr><td valign="top">Remote Directory</td><td valign="top">Path to certificate files</td><td valign="top">/etc/ssl/certs/</td></tr></tbody></table>

**Where to Get These Details**

**Host**

• The IP address or hostname of your server\
• Same address used for SSH access

**Username & Password**

• SSH credentials for the server\
• Recommend creating a dedicated service account

**Remote Directory**

• The directory path where certificates are stored\
• Common locations:

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Path</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">/etc/ssl/certs/</td><td valign="top">System certificates</td></tr><tr><td valign="top">/opt/cert/</td><td valign="top">Custom certificates</td></tr><tr><td valign="top">/var/www/ssl/</td><td valign="top">Web server certificates</td></tr></tbody></table>

**Example Configuration**

Host: XXX.X.XXX.XX\
Username: root\
Password: MyServerPass123\
Remote Directory: /etc/ssl/certs/

<figure><img src="/files/JRN9stIC3Wo6rOLA4Vpo" alt=""><figcaption></figcaption></figure>

**\[5] Remote Desktop (RDP)**

Target Windows servers accessed via Remote Desktop (RDP) for certificate discovery.

<figure><img src="/files/0kPpQ6D51ED9wlBmpIs2" alt=""><figcaption></figcaption></figure>

**\[6] Certificate Store**

Scan software-based certificate stores (for example system stores, browser stores) on the Bot machine or connected endpoints.

**Required Details**

This configuration does not require host-specific fields. It uses known certificate store locations.

<figure><img src="/files/vsNWF5HaHrH8BUmDCQT6" alt=""><figcaption></figcaption></figure>

**\[7] FortiGate**

Discover certificates on FortiGate firewalls.

**Required Details**

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">IP Address*</td><td valign="top">Management IP / hostname of the FortiGate device.</td></tr><tr><td valign="top">FortiGate AuthToken*</td><td valign="top">API token generated from FortiGate for CERTInext access.</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Add additional FortiGate devices.</td></tr></tbody></table>

**Example Format**

IP Address: fortigate-01.example.internal\
FortiGate AuthToken: FGTA2\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*…

<figure><img src="/files/NpjWn7zyn14XT6Y2vZfO" alt=""><figcaption></figcaption></figure>

**\[8] Cloudflare**

Discover certificates for domains managed by Cloudflare.

Required Details

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">Email*</td><td valign="top">Cloudflare account email.</td></tr><tr><td valign="top">Auth Key*</td><td valign="top">Cloudflare Global API Key used for access.</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Add multiple Cloudflare accounts if required.</td></tr></tbody></table>

**Where to get these details**

**Email**

• Your Cloudflare login email address.

**Auth Key (Global API Key)**

• Login to Cloudflare Dashboard: <https://dash.cloudflare.com>\
• Navigate to My Profile → API Tokens\
• Under API Keys, find Global API Key\
• Click View → Enter password → Copy the key.

**Zones & Certificates**

• After saving credentials, CERTInext automatically fetches:

o All accessible Cloudflare zones.\
o Associated certificate configurations.

**Example Configuration**

Email: <admin@example.com>\
Auth Key: 082d1e6\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*...

<figure><img src="/files/6ZHxkb2vTxeFcYG6bb82" alt=""><figcaption></figcaption></figure>

**\[9] Palo Alto**

Discover and manage certificates on Palo Alto firewalls using the API key.

Required Details

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">IP Address*</td><td valign="top">Management IP or hostname of the Palo Alto firewall.</td></tr><tr><td valign="top">PaloAlto AuthToken*</td><td valign="top">API key used for certificate discovery.</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Add additional Palo Alto firewalls.</td></tr></tbody></table>

**Where to Get These Details**

**IP/Host**

• This is the firewall management interface address.\
• It is the same IP or hostname used to log in to the admin UI.\
• Example URL: <https://pa.example.com>

**AuthToken (API Key)**

**Option 1: Generate via Web Interface**

• Log in to Palo Alto firewall web UI.\
• Go to Device → Administrators.\
• Select your admin user.\
• Click Generate API Key.\
• Copy and store the key.

**Option 2: Generate via API URL**

https\://\<firewall-ip>/api/?type=keygen\&user=\<username>\&password=\<password>

The response contains:

\<key>YOUR\_API\_KEY\</key>

**Example Configuration**

IP/Host: pa.example.com\
AuthToken: LU\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*…..

<figure><img src="/files/br6BpOxHaykvkm8n0MjL" alt=""><figcaption></figcaption></figure>

**\[10] F5 BIG-IP**

Discover SSL/TLS certificates from F5 BIG-IP load balancers.

**Required Details**

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">IP Address*</td><td valign="top">Management IP of the F5 BIG-IP device.</td></tr><tr><td valign="top">Port</td><td valign="top">HTTPS/API management port (for example 443, 8443, or 7443).</td></tr><tr><td valign="top">Username*</td><td valign="top">F5 administrator / API user.</td></tr><tr><td valign="top">Password*</td><td valign="top">Password for the specified user.</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Add multiple F5 devices.</td></tr></tbody></table>

**Where to Get These Details**

**IP Address & Port**

• The IP and port used to access the F5 BIG-IP web interface\
o Example URL: https\:// XXX.XXX.XX.XXX:8443\
o IP: XXX.XXX.XX.XXX\
o Web UI Port: 8443\
o API Port: Usually 443 or 7443

**Username & Password**

• Your F5 BIG-IP administrator credentials\
• The account must have Administrator role

**Virtual Server**

• Log into F5 BIG-IP web interface\
• Navigate to Local Traffic > Virtual Servers > Virtual Server List\
• Note the name of your virtual server

**Example Configuration**

IP Address: XXX.XXX.XX.XXX\
Port: 7443\
Username: admin\
Password: Admin\@123\
Virtual Server: vs-app-prod\
Web Interface URL: <https://F5.net.example>

<figure><img src="/files/GEjadGe0igBPlfueWGjd" alt=""><figcaption></figcaption></figure>

**\[11] Akamai**

Discover certificates deployed through Akamai using API client credentials.

**Required Details**

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">URL*</td><td valign="top">Akamai API base host (for example akab-xxxx.luna.akamaiapis.net).</td></tr><tr><td valign="top">Access Token*</td><td valign="top">Access token for API calls.</td></tr><tr><td valign="top">Client Token*</td><td valign="top">Client identifier token.</td></tr><tr><td valign="top">Client Secret*</td><td valign="top">Secret for signing Akamai API requests.</td></tr><tr><td valign="top">Group ID*</td><td valign="top">Numeric Group ID defining scope.</td></tr><tr><td valign="top">Contract ID*</td><td valign="top">Contract identifier (format W-XXXXXX).</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Add multiple Akamai configurations.</td></tr></tbody></table>

**Where to Get These Details**

• Log into Akamai Control Center: <https://control.akamai.com>\
• Navigate to Identity & Access Management > API Users\
• Click Create API Client (or select existing client)\
• After creation, you'll see all credentials.

Important: Save the Client Secret immediately - it's only shown once.

**Group ID & Contract ID**

• Go to Account > Contract Management\
• Contract ID is displayed next to your contract (format: W-XXXXXX)\
• Click on your Group to see the Group ID

**Example Configuration**

Host: abcd.net\
Client Secret: uy\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\
Access Token: access-example\
Client Token: client-example\
Group ID: 123456\
Contract ID: W-123456\
Verification URL: <https://akamai\\_example.com> (to verify deployment)

<figure><img src="/files/sAd9sZna6WYXOfC1odii" alt=""><figcaption></figcaption></figure>

**\[12] Cloud Providers (AWS Certificate Manager)**

Discover and manage certificates from AWS Certificate Manager (ACM).

**Required Details**

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">Access Key*</td><td valign="top">AWS IAM Access Key ID for the account used.</td></tr><tr><td valign="top">Secret Key*</td><td valign="top">AWS IAM Secret Access Key.</td></tr><tr><td valign="top">Role to Assume (Optional)</td><td valign="top">ARN or role name to assume for discovery (cross-account or delegated access).</td></tr><tr><td valign="top">Regions*</td><td valign="top">AWS region(s) where ACM discovery should run (for example us-east-1, ap-south-1).</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Add additional AWS accounts / region sets.</td></tr></tbody></table>

**Where to Get These Details**

**Region**

• Found in the top-right corner of AWS Console

**Access Key & Secret**

• Log into AWS Console: <https://console.aws.amazon.com>\
• Go to IAM > Users > Select your user\
• Click Security credentials tab\
• Under Access keys, click Create access key\
• Save both values.

Access Key ID: AKIAIOSFODNN7EXAMPLE\
Secret Access Key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLE

Important: The Secret Access Key is only shown once!

**Example Configuration**

Region: us-east-1\
Access Key: AKIAIOSFODNN7EXAMPLE\
Access Secret: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLE\
Username: aws-cert-discovery

<figure><img src="/files/gsoaFTgyx1TVDV9jv3uW" alt=""><figcaption></figcaption></figure>

**\[13] Kubernetes**

Discover TLS certificates stored as Kubernetes Secrets in clusters.

**Required Details**

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td><td valign="top"><strong>Example</strong></td></tr><tr><td valign="top">Master URL*</td><td valign="top">Kubernetes API server endpoint (for example AKS/managed cluster API URL).</td><td valign="top">https://aks-demo-cluster:443</td></tr><tr><td valign="top">oAuth Token*</td><td valign="top">Bearer token for authenticating against the API server.</td><td valign="top">eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.sampletoken123...</td></tr><tr><td valign="top">Kubernetes Configuration Files (Upload / View)</td><td valign="top">Optionally upload a kubeconfig file that defines clusters, contexts and users.</td><td valign="top"><em>(Upload kubeconfig)</em></td></tr><tr><td valign="top">AccessPoint (checkbox)</td><td valign="top">Marks this configuration as an access point to be used for discovery.</td><td valign="top">[✓]</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Add multiple clusters.</td><td valign="top">—</td></tr></tbody></table>

**Authentication Methods Supported**

The CERTInext Kubernetes connector supports two independent authentication methods:

1. **Token-Based Authentication (Master URL + Token)**

• Requires:

o Master URL\
o Bearer Token

• CA Certificate is optional

**Suitable for:**

o Azure Kubernetes Service (AKS)\
o Other managed Kubernetes services\
o ServiceAccount token–based access

• When only the Master URL + Token are provided, the connector will automatically use token-based authentication.

2. **Certificate-Based Authentication (mTLS)**

• Requires:

o Master URL\
o CA Certificate\
o Client Certificate\
o Client Key

• All three certificate components are mandatory.\
**Suitable for:**

o Self-managed clusters\
o Security-hardened Kubernetes environments\
(e.g., clusters requiring mTLS client authentication)

**Where to Get These Details**

• URL (API Server Endpoint)

**From Azure AKS:**\
o Go to Azure Portal → Kubernetes services\
o Select your cluster\
o Find API server address in the Overview section

Example:\
<https://aks-demo-cluster:443>

From kubectl: kubectl cluster-info

**• OAuth Token (Service Account Token)**

To generate a bearer token for API access:

o **Create service account**

kubectl create serviceaccount demo-sa

o **Create role binding (Cluster Admin used as example)**

kubectl create clusterrolebinding demo-admin \\\
\--clusterrole=cluster-admin \\\
\--serviceaccount=default:demo-sa

o **For Kubernetes 1.24+, manually create token secret**

kubectl apply -f - <\<EOF\
apiVersion: v1\
kind: Secret\
metadata:\
name: demo-sa-token\
annotations:\
kubernetes.io/service-account.name: demo-sa\
type: kubernetes.io/service-account-token\
EOF

**o Retrieve the bearer token**

kubectl get secret demo-sa-token -o jsonpath='{.data.token}' | base64 -d

**Example Configuration**

URL: <https://aks-demo-cluster:443>\
Key: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.sampletoken123...\
Namespace: ingress-nginx\
AccessPoint: \[✓]

<figure><img src="/files/iuIzC38JRHIhhrpWr4Oz" alt=""><figcaption></figcaption></figure>

**\[14] HSM (Hardware Security Module)**

Discover and validate certificates and keys that are stored in HSMs.

Required Details

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">HSM Configuration*</td><td valign="top">HSM configuration file or connection definition (uploaded or pasted).</td></tr><tr><td valign="top">HSM Password*</td><td valign="top">Password / PIN used to open the HSM slot.</td></tr><tr><td valign="top">Certificates (checkbox)</td><td valign="top">Include certificates during discovery.</td></tr><tr><td valign="top">Keys (checkbox)</td><td valign="top">Include cryptographic keys in the scan scope (if allowed).</td></tr><tr><td valign="top">Status</td><td valign="top">Shows current connection state (for example Pending).</td></tr><tr><td valign="top">Action (+ / …)</td><td valign="top">Add or manage HSM entries.</td></tr></tbody></table>

**Example Format**

HSM Configuration: \[Uploaded configuration file]\
HSM Password: hsm\_example\
Certificates: \[✓]\
Keys: \[✓]\
Status: Pending

<figure><img src="/files/piL3f7fqaYfV9pFcyBs6" alt=""><figcaption></figcaption></figure>

**\[15] LDAP / Active Directory**

Discover certificates stored in LDAP or Active Directory directories.

**Required Details**

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">LDAP URL*</td><td valign="top">LDAP or LDAPS URL including host and port (for example ldap://X.XX.XXX.XX:389).</td></tr><tr><td valign="top">Container*</td><td valign="top">Base DN where certificates or objects are located (for example dc=example,dc= example,dc= example).</td></tr><tr><td valign="top">Admin DN*</td><td valign="top">Bind DN or domain\user used for authentication (for example_admin ).</td></tr><tr><td valign="top">Password*</td><td valign="top">Password for the Admin DN user.</td></tr><tr><td valign="top">No. of threads*</td><td valign="top">Multi-threading configuration defining parallel discovery threads.</td></tr><tr><td valign="top">Status</td><td valign="top">Shows connection state (for example Pending).</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Add or test multiple LDAP directories.</td></tr></tbody></table>

**Example Format**

LDAP URL: ldap\://X.XX.XXX.XX:389\
Container: dc= example, dc= example ,dc= example\
Admin DN: example\_admin\
Password: \*\*\*\*\*\*\*\*\
No. of threads: 5\
Status: Pending

<figure><img src="/files/ERSeLJtNDx58Bl374mdg" alt=""><figcaption></figcaption></figure>

**\[16] Database**

Discover certificates associated with database servers.

**Required Details**

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">Enter FQDN, IP address or IP address range*</td><td valign="top">Database host (single IP, FQDN or range).</td></tr><tr><td valign="top">TCP Port*</td><td valign="top">Database listener port (for example 1433, 1521, 3306).</td></tr><tr><td valign="top">DB Name*</td><td valign="top">Database name or instance identifier.</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Configure multiple database targets.</td></tr></tbody></table>

**Example Format**

Enter FQDN, IP address or IP address range: sql-prod-01.example.internal\
TCP Port: 1433\
DB Name: CertinextDB

<figure><img src="/files/nQTYtBFzlI1jX2ZEL79t" alt=""><figcaption></figcaption></figure>

**\[17] ADCS**

This section configures discovery through AD CS. This discovery is directly done through the issuing CA. You need to create a CA connector to fetch and discover certificates from ADCS.

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><strong>Field</strong></td><td valign="top"><strong>Description</strong></td></tr><tr><td valign="top">CA Connector Select Option*</td><td valign="top"> ADCS Connector</td></tr><tr><td valign="top">Action (+)</td><td valign="top">Configure multiple database targets.</td></tr></tbody></table>

<figure><img src="/files/jfTdTzTitFpH8DrxSmIz" alt=""><figcaption></figcaption></figure>

**Add Certificate**

This section explains how certificates can be manually added into CERTInext for discovery and inventory purposes. Certificates can be added either by creating a new certificate record or by importing an existing certificate.

From the UI, navigate to:

Certificates → Discovery Dashboard → Add Certificate

The Type field provides two options:

• Create\
• Import

<figure><img src="/files/NyNRXpOAcgbFLHpAbd3m" alt=""><figcaption></figcaption></figure>

**Create**

The Create option is used to manually create a certificate record within CERTInext when a physical certificate file is not available. This method allows users to define the certificate identity and basic attributes for tracking and inventory purposes.

**Fields**

• Common Name (Required) → The primary domain name or identifier for the certificate.\
• Subject Alternative Name (Optional) → Additional identities associated with the certificate:\
• IP Address\
• DNS Name

These values are stored as certificate metadata and help in associating the certificate with the correct hosts or services.\
Once the required details are entered, clicking Add creates the certificate record in CERTInext.

<figure><img src="/files/zg2O1WqqMfOwMlN2jUIM" alt=""><figcaption></figcaption></figure>

**Import**

The Import option is used to onboard certificates that already exist in the environment. This allows organizations to bring external certificates into CERTInext for visibility, monitoring and audit purposes without performing automated discovery scans.\
The Selection Type field determines the import method.

**Selection Types**

The following import methods are supported:

**\[1] Certificate**

This option allows you to import a single certificate file.

You must:\
• Select Certificate as the Selection Type\
• Upload a certificate file

Supported file formats:.cer, .crt, .pem, .der, .p7b

This method is used when the certificate is available as an individual file.

<figure><img src="/files/8mC7uoN9Qe94LoMY2MHn" alt=""><figcaption></figcaption></figure>

**\[2] Certificate Data**

This option allows you to import a certificate by pasting its contents directly.

You must:

• Select Certificate Data as the Selection Type\
• Paste the Base64-encoded certificate content into the input field

This method is useful when the certificate is available in text format, for example copied from a server or configuration file.

<figure><img src="/files/xsxr03Qw4LeTOHCjfWWM" alt=""><figcaption></figcaption></figure>

**\[3] Key Store**

This option allows you to import certificates from a keystore file.

You must:

• Select Key Store as the Selection Type\
• Upload a keystore file\
• Enter the keystore password

Supported file formats: .pfx, .p12, .pkcs12, .jks, .keystore, .jceks

This method is commonly used for Java keystores or PKCS#12 bundles that contain certificates and private keys.

<figure><img src="/files/hDpkQSLFf7j4kaKtNExu" alt=""><figcaption></figcaption></figure>

**\[4] Bulk Import**

CERTInext provides the ability to bulk import certificates into the Discovery module using Excel or CSV templates. This feature is useful when certificates already exist in your environment and need to be tracked, monitored or audited within CERTInext without running an automated discovery scan. All successfully imported certificates are visible in the Discovery Dashboard and are clearly marked as imported.

**Supported Import File Formats**

CERTInext supports bulk certificate import using the following file formats:\
• .xlsx\
• .xls\
• .csv

The file must follow the CERTInext import template structure.

**Certificate Import Template Format**

The import file must contain certificate data in a structured format. Each row represents a single certificate.

Certificate Content (Base64) - This is a required column\
This column must contain the full Base64-encoded certificate content.

Note: The certificate content may include the BEGIN CERTIFICATE and END CERTIFICATE headers or may be provided as plain Base64 content. Both formats are supported for Excel and CSV templates.

The following fields are optional and can be used to enrich certificate metadata:

CN (Optional)\
DNS (Optional)\
IP (Optional)\
Port (Optional)

If these values are provided, CERTInext associates them with the imported certificate. If left empty, the certificate is still imported successfully.

Note: If a row in the import file is completely blank, CERTInext automatically ignores and skips that row during processing.

<figure><img src="/files/oKhvfS3rwSAO5vU5a6jV" alt=""><figcaption></figcaption></figure>

**How to Import Certificates**

• Navigate to Certificates → Discovery→ Add Certificate\
• Select Import as the certificate type\
• Choose Bulk Import as the selection type\
• Upload the completed Excel or CSV file\
• Click Add to start the import process

CERTInext validates each row in the file and processes the certificates accordingly.

**Note**: The recommended maximum number of certificates per import file is 500. Files containing more than 500 certificates can also be uploaded; however, very large files may take longer to process depending on system performance.

<figure><img src="/files/84deupW4yv9vivQ2xp7w" alt=""><figcaption><p>Fig: Import Certificate</p></figcaption></figure>

During processing, system messages are displayed on the same screen indicating:

• Successfully imported\
• Already exists\
• Failed to import (with reason)

These messages act as processing logs for the operation.

**Import Result Summary**

After completion, CERTInext displays a summary showing:

• Number of certificates imported successfully\
• Number of certificates that already exist\
• Number of certificates that failed to import

Row-level results are also displayed for troubleshooting.

**Import Outcome Scenarios**

1. Successful Import

When a certificate is valid and does not already exist in CERTInext:

• The certificate is imported successfully\
• A success message is displayed\
• The certificate appears in the Discovery inventory

<figure><img src="/files/q6OQtJz3FVLfTlF0dob4" alt=""><figcaption></figcaption></figure>

2. **Certificate Already Exists**

When a certificate being uploaded already exists in CERTInext:

• The certificate is not duplicated\
• The import result indicates that the certificate already exists\
• The existing certificate remains unchanged

<figure><img src="/files/ZL0mSxK2TSZ4t1qWHeAW" alt=""><figcaption></figcaption></figure>

3. **Invalid Certificate Format**

When the Base64 certificate content cannot be parsed or is invalid:

• The certificate import fails for that row\
• The reason for failure is clearly displayed\
• Other valid certificates in the file continue to be processed

<figure><img src="/files/li6tEd28SLK5Jwrneijq" alt=""><figcaption></figcaption></figure>

4. **Mixed Import Results**

In a single bulk import, different certificates may produce different outcomes:

• Some certificates are imported successfully\
• Some are skipped because they already exist\
• Some fail due to invalid format or content

CERTInext provides a consolidated summary along with row-level details explaining each outcome.

<figure><img src="/files/mxNUKcnKfP1ra1E2JjXA" alt=""><figcaption></figcaption></figure>

**Add CA Certificate**

This section allows you to add and track certificates that are issued by a specific Certificate Authority (CA) within CERTInext.\
From the UI, navigate to:

Certificates → Discovery Dashboard → Add CA Certificate

Select the CA panel and click Add CA Cert.

<figure><img src="/files/gOrnhmjHiLeWEqoVbYup" alt=""><figcaption></figcaption></figure>

**CA Name**

The CA Name field allows you to select the Certificate Authority to which the certificate belongs.

The following options are available:

• **Private PKI by emCA** → Used for certificates issued by an emCA-managed private PKI.\
• **Let’s Encrypt** → Used for certificates issued by Let’s Encrypt.\
• **AD CS** → Used for certificates issued by Microsoft Active Directory Certificate Services.\
• **Others** → Used for certificates issued by any external or third-party CA not explicitly listed.

<figure><img src="/files/WaN95i7s7h517W130DxZ" alt=""><figcaption></figcaption></figure>

Selecting a CA ensures that the certificate is correctly associated with its issuing authority for classification, reporting, and lifecycle tracking.

**Selection Type**

The Selection Type field determines how the CA certificate will be added into CERTInext.

<figure><img src="/files/N6ZCP4HVVLKqI6zYXbmo" alt=""><figcaption></figcaption></figure>

The following options are available:

**• Certificate**

This option allows you to upload a **CA certificate file** directly.

You must:

o Select Certificate\
o Upload the CA certificate file

Supported formats include: .cer, .crt, .pem, .der, .p7b

This method is used when the CA certificate is available as a file.

**• Certificate Data**

This option allows you to add a CA certificate by pasting its contents directly.

You must:

o Select Certificate Data\
o Paste the Base64-encoded CA certificate content into the input field

This method is useful when the CA certificate is available in text format.

<figure><img src="/files/sZKF9quNTD4twKDIwJRS" alt=""><figcaption></figcaption></figure>

**Add**

Once the CA Name and Selection Type are selected and the required certificate data is provided, click Add to register the CA certificate. The CA certificate is then added to CERTInext and becomes visible in the CA inventory. It is included in certificate counts and can be used for reporting, monitoring, and trust chain analysis.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.certinext.io/documentation/certificate-lifecycle-management/discovering-certificates/scan-using-bots/configuring-bots.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
