github.com/jmbataller/terraform@v0.6.8-0.20151125192640-b7a12e3a580c/website/source/docs/providers/tls/index.html.markdown (about) 1 --- 2 layout: "tls" 3 page_title: "Provider: TLS" 4 sidebar_current: "docs-tls-index" 5 description: |- 6 The TLS provider provides utilities for working with Transport Layer Security keys and certificates. 7 --- 8 9 # TLS Provider 10 11 The TLS provider provides utilities for working with *Transport Layer Security* 12 keys and certificates. It provides resources that 13 allow private keys, certificates and certficate requests to be 14 created as part of a Terraform deployment. 15 16 Another name for Transport Layer Security is *Secure Sockets Layer*, 17 or SSL. TLS and SSL are equivalent when considering the resources 18 managed by this provider. 19 20 This provider is not particularly useful on its own, but it can be 21 used to create certificates and credentials that can then be used 22 with other providers when creating resources that expose TLS 23 services or that themselves provision TLS certificates. 24 25 Use the navigation to the left to read about the available resources. 26 27 ## Example Usage 28 29 ``` 30 ## This example create a self-signed certificate for a development 31 ## environment. 32 ## THIS IS NOT RECOMMENDED FOR PRODUCTION SERVICES. 33 ## See the detailed documentation of each resource for further 34 ## security considerations and other practical tradeoffs. 35 36 resource "tls_private_key" "example" { 37 algorithm = "ECDSA" 38 } 39 40 resource "tls_self_signed_cert" "example" { 41 key_algorithm = "${tls_private_key.example.algorithm}" 42 private_key_pem = "${tls_private_key.example.private_key_pem}" 43 44 # Certificate expires after 12 hours. 45 validity_period_hours = 12 46 47 # Generate a new certificate if Terraform is run within three 48 # hours of the certificate's expiration time. 49 early_renewal_hours = 3 50 51 # Reasonable set of uses for a server SSL certificate. 52 allowed_uses = [ 53 "key_encipherment", 54 "digital_signature", 55 "server_auth", 56 ] 57 58 dns_names = ["example.com", "example.net"] 59 60 subject { 61 common_name = "example.com" 62 organization = "ACME Examples, Inc" 63 } 64 } 65 66 # For example, this can be used to populate an AWS IAM server certificate. 67 resource "aws_iam_server_certificate" "example" { 68 name = "example_self_signed_cert" 69 certificate_body = "${tls_self_signed_cert.example.cert_pem}" 70 private_key = "${tls_private_key.example.private_key_pem}" 71 } 72 ```