--- layout: docs page_title: Inline certificate configuration reference description: Learn how to configure an inline certificate bound to an API Gateway on VMs. --- # Inline certificate configuration reference 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). ## 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 - [`Partition`](#partition): string | no default - [`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: ```hcl Kind = "inline-certificate" Name = "" Meta = { "" = "" } Certificate = "" PrivateKey = "" ``` ```json { "Kind": "inline-certificate", "Name": "", "Meta": { "any key": "any value" }, "Certificate": "", "PrivateKey": "" } ``` ## 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` Specifies the Enterprise [namespace](/consul/docs/enterprise/namespaces) to apply to the configuration entry. #### Values - Default: `"default"` in Enterprise - Data type: string ### `Partition` 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 ## Examples The following example demonstrates an inline certificate configuration. ```hcl Kind = "inline-certificate" Name = "tls-certificate" Certificate = "" PrivateKey = "" ``` ```json { "Kind": "inline-certificate", "Name": "tls-certificate", "Certificate": "", "PrivateKey": "" } ```