2023-02-23 21:01:47 +00:00
---
layout: docs
2024-06-11 19:58:01 +00:00
page_title: Inline certificate configuration reference
2023-02-23 21:01:47 +00:00
description: Learn how to configure an inline certificate bound to an API Gateway on VMs.
---
# Inline certificate configuration reference
2024-06-11 19:58:01 +00:00
This topic provides reference information for the inline certificate
configuration entry. The inline certificate secures TLS for the Consul API gateway on VMs. In production environments, we recommend you use the more secure [file system certificate configuration entry](/consul/docs/connect/config-entries/file-system-certificate) instead.
The inline certificate configuration entry is not used for Consul on Kubernetes deployments. To learn about configuring certificates for Kubernetes environments, refer to [Gateway Resource Configuration](/consul/docs/connect/gateways/api-gateway/configuration/gateway).
2023-02-23 21:01:47 +00:00
## Configuration model
The following list outlines field hierarchy, language-specific data types, and
requirements in an `inline-certificate` configuration entry. Click on a property name
to view additional details, including default values.
- [`Kind`](#kind): string | must be `"inline-certificate"`
- [`Name`](#name): string | no default
- [`Namespace`](#namespace): string | no default <EnterpriseAlert inline />
- [`Partition`](#partition): string | no default <EnterpriseAlert inline />
- [`Meta`](#meta): map | no default
- [`Certificate`](#certificate): string | no default
- [`PrivateKey`](#privatekey): string | no default
## Complete configuration
When every field is defined, an `inline-certificate` configuration entry has the following form:
2024-06-11 19:58:01 +00:00
<Tabs>
<Tab heading="HCL" group="hcl">
2023-02-23 21:01:47 +00:00
2024-06-11 19:58:01 +00:00
```hcl
2023-02-23 21:01:47 +00:00
Kind = "inline-certificate"
Name = "<name of certificate>"
Meta = {
"<any key>" = "<any value>"
}
Certificate = "<public certificate>"
PrivateKey = "<private key>"
```
2024-06-11 19:58:01 +00:00
</Tab>
<Tab heading="JSON" group="json">
```json
2023-02-23 21:01:47 +00:00
{
"Kind": "inline-certificate",
"Name": "<name of certificate>",
"Meta": {
"any key": "any value"
2024-06-11 19:58:01 +00:00
},
2023-02-23 21:01:47 +00:00
"Certificate": "<public certificate>",
"PrivateKey": "<private key>"
}
```
2024-06-11 19:58:01 +00:00
</Tab>
</Tabs>
2023-02-23 21:01:47 +00:00
## Specification
### `Kind`
Specifies the type of configuration entry to implement.
#### Values
- Default: none
- This field is required.
- Data type: string that must equal `"inline-certificate"`
### `Name`
Specifies a name for the configuration entry. The name is metadata that you can
use to reference the configuration entry when performing Consul operations, such
as applying a configuration entry to a specific cluster.
#### Values
- Default: none
- This field is required.
- Data type: string
### `Namespace` <EnterpriseAlert inline />
Specifies the Enterprise [namespace](/consul/docs/enterprise/namespaces) to apply to the configuration entry.
#### Values
- Default: `"default"` in Enterprise
- Data type: string
### `Partition` <EnterpriseAlert inline />
Specifies the Enterprise [admin partition](/consul/docs/enterprise/admin-partitions) to apply to the configuration entry.
#### Values
- Default: `"default"` in Enterprise
- Data type: string
### `Meta`
Specifies an arbitrary set of key-value pairs to associate with the gateway.
#### Values
- Default: none
- Data type: map containing one or more keys and string values.
### `Certificate`
Specifies the inline public certificate to use for TLS.
#### Values
- Default: none
- This field is required.
- Data type: string value of the public certificate
### `PrivateKey`
Specifies the inline private key to use for TLS.
#### Values
- Default: none
- This field is required.
- Data type: string value of the private key
2024-06-11 19:58:01 +00:00
## Examples
The following example demonstrates an inline certificate configuration.
<Tabs>
<Tab heading="HCL" group="hcl">
```hcl
Kind = "inline-certificate"
Name = "tls-certificate"
Certificate = "<complete-public-certificate>"
PrivateKey = "<complete-private-key>"
```
</Tab>
<Tab heading="JSON" group="json">
```json
{
"Kind": "inline-certificate",
"Name": "tls-certificate",
"Certificate": "<complete-public-certificate>",
"PrivateKey": "<complete-private-key>"
}
```
</Tab>
</Tabs>