IPv6, HTTPS, DNSSEC, and Certificates
Here’s what cloud.gov does to support relevant federal standards and recommendations, for applications on
*.app.cloud.gov and custom domains.
cloud.gov has basic support for IPv6. cloud.gov supports two types of application access, external and internal. External access is when traffic reaches an application from outside the cloud.gov platform, such as from an office, external application, or user. Internal traffic is traffic which leverages the platform’s internal DNS to allow applications to communicate without ever leaving the platform’s network boundaries. IPv6 is supported for external access. For internal access, only IPv4 is supported. When you deploy a new application, for external IPv6 traffic, you do not have to take any action, and most applications will know to use IPv4 internally as cloud.gov’s internal DNS provider will leverage IPv4. If you have more questions or security questions, please contact Support.
cloud.gov ensures all applications are accessible only over HTTPS with HTTP Strict Transport Security (HSTS) headers in accordance with the HTTPS-Only Standard. Any HTTP requests are permanantly redirected to HTTPS. You don’t have to take any action.
Strict-Transport-Security headers for all applications by default, and has added the
cloud.gov domain/subdomains to the HSTS preload list for most major browsers.
You are responsible for setting up HSTS preloading for your custom domain. cloud.gov doesn’t set this up for you. If you need HSTS preloading, follow the guidance from the maintainers of the HSTS preload list. The HTTPS-Only Standard encourages HSTS preloading.
Additional details are available in the cloud.gov FedRAMP P-ATO documentation package, including in System Security Plan controls SC-8, SC-12, and SC-20.
cloud.gov does not currently support DNSSEC on
cloud.gov domains. For example, an application at
*.app.cloud.gov would not support DNSSEC.
OMB memo M-18-23 rescinds M-08-23, the OMB memo that originally mandated DNSSEC for federal systems. You should consider carefully whether DNSSEC is still a requirement for your system.
If you do need DNSSEC for your custom domain, you are responsible for configuring DNSSEC in your DNS system. cloud.gov can’t configure DNSSEC for you because cloud.gov does not have access to your DNS system.
Additional details are available the cloud.gov System Security Plan, including controls SC-20, SC-21, SC-22, and SC-23.
cloud.gov’s global TLS certificate is issued by a 3rd party, open source vendor known as Let’s Encrypt. Let’s Encrypt allows for individuals, companies, or agencies to request free TLS certificates in an automated fashion for easy HTTPS functionality. As part of that, the cloud.gov platform does not control any aspect of the certificate provisioning process other than the common name and alternative name. We do not control the ciphers, certificate validity, or other algorithms used by Let’s Encrypt during the certificate creation process. Once our certificates have been generated by Let’s Encrypt, we upload them to our public facing load balancers with the
ELBSecurityPolicy-TLS-1-2-2017-01 SSL/TLS policy, you can find the specific ciphers supported on the AWS documentation page. The ciphers supported when connecting to cloud.gov are defined by AWS and we inherit those configurations.
The benefit of using Let’s Encrypt, even though the cloud.gov platform doesn’t control much of the provisioning process, is how it allows the cloud.gov team to bring a full HTTPS/TLS experience (along with all the compliance requirements) to customers at both no-cost and with full certificate authority validity. Let’s Encrypt has partnered with IdenTrust to have their intermediate certificates cross-signed by IdenTrust, who has partnered with nearly all major vendors which ship their products with root certificates. Due to the strategic partnership Let’s Encrypt has, nearly every programming language and operating system automatically trusts Let’s Encrypt certificates automatically. This is a major benefit to the cloud.gov team, as cross-signed intermediate certificates can be cost-prohibitive to acquire, which is why a lot of vendors just make their root certificate authority certificate available, requiring customers to download them and making the overall user experience much more difficult.
Let’s Encrypt is a complicated yet powerful TLS certificate vendor. While the cloud.gov team cannot change the way the certificates are provisioned, any support requests or questions regarding our TLS configuration are welcome at firstname.lastname@example.org. You can also find more about how Let’s Encrypt works via their public documentation.