
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[ The Cloudflare Blog ]]></title>
        <description><![CDATA[ Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a better Internet. ]]></description>
        <link>https://blog.cloudflare.com</link>
        <atom:link href="https://blog.cloudflare.com/" rel="self" type="application/rss+xml"/>
        <language>en-us</language>
        <image>
            <url>https://blog.cloudflare.com/favicon.png</url>
            <title>The Cloudflare Blog</title>
            <link>https://blog.cloudflare.com</link>
        </image>
        <lastBuildDate>Tue, 14 Apr 2026 23:03:15 GMT</lastBuildDate>
        <item>
            <title><![CDATA[How Cloudflare is helping domain owners with the upcoming Entrust CA distrust by Chrome and Mozilla]]></title>
            <link>https://blog.cloudflare.com/how-cloudflare-is-helping-domain-owners-with-the-upcoming-entrust-ca/</link>
            <pubDate>Thu, 19 Sep 2024 14:00:00 GMT</pubDate>
            <description><![CDATA[ Chrome and Mozilla will stop trusting Entrust’s public TLS certificates issued after November 2024 due to concerns about Entrust’s compliance with security standards. In response, Entrust is partnering with SSL.com to continue providing trusted certificates. Cloudflare will support SSL.com as a CA, simplifying certificate management for customers using Entrust by automating issuance and renewals. ]]></description>
            <content:encoded><![CDATA[ <p><a href="https://security.googleblog.com/2024/06/sustaining-digital-certificate-security.html"><u>Chrome</u></a> and <a href="https://groups.google.com/a/mozilla.org/g/dev-security-policy/c/jCvkhBjg9Yw?pli=1"><u>Mozilla</u></a> announced that they will stop trusting Entrust’s public TLS certificates issued after November 12, 2024 and December 1, 2024, respectively. This decision stems from <a href="https://groups.google.com/a/mozilla.org/g/dev-security-policy/c/LhTIUMFGHNw/m/uKzergzqAAAJ"><u>concerns</u></a> related to Entrust’s ability to meet the CA/Browser Forum’s requirements for a publicly trusted certificate authority (CA). To prevent Entrust customers from being impacted by this change, Entrust has announced that they are partnering with <a href="http://ssl.com"><u>SSL.com</u></a>, a publicly trusted CA, and will be issuing certs from SSL.com’s roots to ensure that they can continue to provide their customers with certificates that are trusted by Chrome and Mozilla. </p><p>We’re excited to announce that we’re going to be adding SSL.com as a certificate authority that Cloudflare customers can use. This means that Cloudflare customers that are currently relying on Entrust as a CA and uploading their certificate manually to Cloudflare will now be able to rely on Cloudflare’s certificate management pipeline for automatic issuance and renewal of SSL.com certificates. </p>
    <div>
      <h2>CA distrust: responsibilities, repercussions, and responses</h2>
      <a href="#ca-distrust-responsibilities-repercussions-and-responses">
        
      </a>
    </div>
    <p><b>With great power comes great responsibility
</b>Every publicly trusted certificate authority (CA) is responsible for maintaining a high standard of security and compliance to ensure that the certificates they issue are trustworthy. The security of millions of websites and applications relies on a CA’s commitment to these standards, which are set by the <a href="https://cabforum.org/"><u>CA/Browser Forum</u></a>, the governing body that defines the baseline requirements for certificate authorities. <a href="https://cabforum.org/working-groups/server/baseline-requirements/documents/CA-Browser-Forum-TLS-BR-2.0.6.pdf"><u>These standards</u></a> include rules regarding certificate issuance, validation, and revocation, all designed to secure the data transferred over the Internet. </p><p>However, as with all complex software systems, it’s inevitable that bugs or issues may arise, leading to the mis-issuance of certificates. Improperly issued certificates pose a significant risk to Internet security, as they can be exploited by malicious actors to impersonate legitimate websites and intercept sensitive data. </p><p>To mitigate such risk, publicly trusted CAs are required to communicate issues as soon as they are discovered, so that domain owners can replace the compromised certificates immediately. Once the issue is communicated, CAs must revoke the mis-issued certificates within 5 days to signal to browsers and clients that the compromised certificate should no longer be trusted. This level of transparency and urgency around the revocation process is essential for minimizing the risk posed by compromised certificates. </p><p><b>Why Chrome and Mozilla are distrusting Entrust
</b>The decision made by Chrome and Mozilla to distrust Entrust’s public TLS certificates stems from concerns regarding Entrust’s incident response and remediation process. In <a href="https://groups.google.com/a/mozilla.org/g/dev-security-policy/c/LhTIUMFGHNw/m/uKzergzqAAAJ"><u>several instances</u></a>, Entrust failed to report critical issues and did not revoke certificates in a timely manner. The pattern of delayed action has eroded the browsers’ confidence in Entrust’s ability to act quickly and transparently, which is crucial for maintaining trust as a CA. </p><p>Google and Mozilla cited the ongoing lack of transparency and urgency in addressing mis-issuances as the primary reason for their distrust decision. Google specifically <a href="https://security.googleblog.com/2024/06/sustaining-digital-certificate-security.html"><u>pointed out</u></a> that over the past 6 years, Entrust has shown a "pattern of compliance failures" and failed to make the "tangible, measurable progress" necessary to restore trust. Mozilla <a href="https://groups.google.com/a/mozilla.org/g/dev-security-policy/c/jCvkhBjg9Yw?pli=1"><u>echoed</u></a> these concerns, emphasizing the importance of holding Entrust accountable to ensure the integrity and security of the public Internet. </p><p><b>Entrust’s response to the distrust announcement 
</b>In response to the distrust announcement from Chrome and Mozilla, Entrust has taken proactive steps to ensure continuity for their customers. To prevent service disruption, Entrust has <a href="https://www.entrust.com/blog/2024/07/announcing-our-new-tls-solution-offering/"><u>announced</u></a> that they are partnering with SSL.com, a CA that’s trusted by all major browsers, including Chrome and Mozilla, to issue certificates for their customers. By issuing certificates from SSL.com’s roots, Entrust aims to provide a seamless transition for their customers, ensuring that they can continue to obtain certificates that are recognized and trusted by the browsers their users rely on. </p><p>In addition to their partnership with SSL.com, Entrust <a href="https://www.entrust.com/blog/2024/07/thoughts-on-the-google-chrome-announcement-and-our-commitment-to-the-public-tls-certificate-business/"><u>stated</u></a> that they are working on a number of <a href="https://www.entrust.com/blog/2024/07/restoring-trust-an-update-on-our-progress/"><u>improvements</u></a>, including changes to their organizational structure, revisions to their incident response process and policies, and a push towards automation to ensure compliant certificate issuances. </p>
    <div>
      <h2>How Cloudflare can help Entrust customers </h2>
      <a href="#how-cloudflare-can-help-entrust-customers">
        
      </a>
    </div>
    <p><b>Now available: SSL.com as a certificate authority for Advanced Certificate Manager and SSL for SaaS certificates
</b>We’re excited to announce that customers using <a href="https://www.cloudflare.com/application-services/products/advanced-certificate-manager/"><u>Advanced Certificate Manager</u></a> will now be able to select SSL.com as a certificate authority for Advanced certificates and Total TLS certificates. Once the certificate is issued, Cloudflare will handle all future renewals on your behalf. </p><p>By default, Cloudflare will issue SSL.com certificates with a 90 day validity period. However, customers using Advanced Certificate Manager will have the option to set a custom validity period (14, 30, or 90 days) for their SSL.com certificates. In addition, Enterprise customers will have the option to obtain 1-year SSL.com certificates. Every SSL.com certificate order will include 1 RSA and 1 ECDSA certificate.</p><p>Note: We are gradually rolling this out and customers should see the CA become available to them through the end of September and into October. </p><p>If you’re using Cloudflare as your DNS provider, there are no additional steps for you to take to get the certificate issued. Cloudflare will validate the ownership of the domain on your behalf to get your SSL.com certificate issued and renewed. </p><p>If you’re using an external DNS provider and have wildcard hostnames on your certificates, DNS based validation will need to be used, which means that you’ll need to add TXT DCV tokens at your DNS provider in order to get the certificate issued. With SSL.com, two tokens are returned for every hostname on the certificate. This is because SSL.com uses different tokens for the RSA and ECDSA certificates. To reduce the overhead around certificate management, we recommend setting up <a href="https://blog.cloudflare.com/introducing-dcv-delegation/"><u>DCV Delegation</u></a> to allow Cloudflare to place domain control validation (DCV) tokens on your behalf. Once <a href="https://developers.cloudflare.com/ssl/edge-certificates/changing-dcv-method/methods/delegated-dcv/?cf_history_state=%7B%22guid%22%3A%22C255D9FF78CD46CDA4F76812EA68C350%22%2C%22historyId%22%3A9%2C%22targetId%22%3A%222D50381DD1755E1B208472DB3EBA7428%22%7D#setup"><u>DCV Delegation is set up</u></a>, Cloudflare will automatically issue, renew, and deploy all future certificates for you. </p><p><b>Advanced Certificates: selecting SSL.com as a CA through the UI or API
</b>Customers can select SSL.com as a CA through the UI or through the <a href="https://developers.cloudflare.com/api/operations/certificate-packs-order-advanced-certificate-manager-certificate-pack"><u>Advanced Certificate API endpoint</u></a> by specifying “ssl_com” in the certificate_authority parameter. </p><p>If you’d like to use SSL.com as a CA for an advanced certificate, you can select “SSL.com” as your CA when creating a new Advanced certificate order. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4StVxaTcon8sLoCSGcskcq/df72f56d61f818d01ccc21cb71a98925/BLOG-2559_2.png" />
          </figure><p></p><p>If you’d like to use SSL.com as a CA for all of your certificates, we recommend setting your <a href="https://developers.cloudflare.com/ssl/edge-certificates/additional-options/total-tls/"><u>Total TLS</u></a> CA to SSL.com. This will issue an individual certificate for each of your proxied hostname from the CA. </p><p>Note: Total TLS is a feature that’s only available to customers that are using Cloudflare as their DNS provider. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6SGVKQZZ1cs1T9r8gynImE/44b4a90416431ab3abfaba51a3ac15a9/BLOG-2559_3.png" />
          </figure><p></p><p><b>SSL for SaaS: selecting SSL.com as a CA through the UI or API
</b>Enterprise customers can select SSL.com as a CA through the custom hostname creation UI or through the <a href="https://developers.cloudflare.com/api/operations/custom-hostname-for-a-zone-create-custom-hostname"><u>Custom Hostnames API endpoint</u></a> by specifying “ssl_com” in the certificate_authority parameter. </p><p>All custom hostname certificates issued from SSL.com will have a 90 day validity period. If you have wildcard support enabled for custom hostnames, we recommend using <a href="https://blog.cloudflare.com/introducing-dcv-delegation/"><u>DCV Delegation</u></a> to ensure that all certificate issuances and renewals are automatic.  </p>
    <div>
      <h3>Our recommendation if you’re using Entrust as a certificate authority </h3>
      <a href="#our-recommendation-if-youre-using-entrust-as-a-certificate-authority">
        
      </a>
    </div>
    <p>Cloudflare customers that use Entrust as their CA are required to manually handle all certificate issuances and renewals. Since Cloudflare does not directly integrate with Entrust, customers have to get their certificates issued directly from the CA and upload them to Cloudflare as <a href="https://developers.cloudflare.com/ssl/edge-certificates/custom-certificates/uploading/"><u>custom certificates</u></a>. Once these certificates come up for renewal, customers have to repeat this manual process and upload the renewed certificates to Cloudflare before the expiration date. </p><p>Manually managing your certificate’s lifecycle is a time-consuming and error prone process. With certificate lifetimes decreasing from 1 year to 90 days, this cycle needs to be repeated more frequently by the domain owner. </p><p>As Entrust transitions to issuing certificates from SSL.com roots, this manual management process will remain unless customers switch to Cloudflare’s managed certificate pipeline. By making this switch, you can continue to receive SSL.com certificates <a href="https://www.cloudflare.com/application-services/solutions/certificate-lifecycle-management/">without the hassle of manual management</a> — Cloudflare will handle all issuances and renewals for you!</p><p>In early October, we will be reaching out to customers who have uploaded Entrust certificates to Cloudflare to recommend migrating to our managed pipeline for SSL.com certificate issuances, simplifying your certificate management process. </p><p>If you’re ready to make the transition today, simply go to the SSL/TLS tab in your Cloudflare dashboard, click “Order Advanced Certificate”, and select “SSL.com” as your certificate authority. Once your new SSL.com certificate is issued, you can either remove your Entrust certificate or simply let it expire. Cloudflare will seamlessly transition to serving the managed SSL.com certificate before the Entrust certificate expires, ensuring zero downtime during the switch. </p> ]]></content:encoded>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[SaaS]]></category>
            <category><![CDATA[Certificate Authority]]></category>
            <category><![CDATA[Advanced Certificate Manager]]></category>
            <category><![CDATA[Application Services]]></category>
            <category><![CDATA[Application Security]]></category>
            <guid isPermaLink="false">6JSSnYVglQtKPqyymp5Tst</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing Automatic SSL/TLS: securing and simplifying origin connectivity]]></title>
            <link>https://blog.cloudflare.com/introducing-automatic-ssl-tls-securing-and-simplifying-origin-connectivity/</link>
            <pubDate>Thu, 08 Aug 2024 14:05:00 GMT</pubDate>
            <description><![CDATA[ This new Automatic SSL/TLS setting will maximize and simplify the encryption modes Cloudflare uses to communicate with origin servers by using the SSL/TLS Recommender. ]]></description>
            <content:encoded><![CDATA[ 
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4YIQCIdM9Td1RJfdCkg3o5/6fc5cd824f819658e00007c61f69ce71/1885-1-Hero.png" />
          </figure><p>During Birthday Week 2022, we <a href="https://blog.cloudflare.com/securing-origin-connectivity"><u>pledged</u></a> to provide our customers with the most secure connection possible from Cloudflare to their origin servers automatically. I’m thrilled to announce we will begin rolling this experience out to customers who have the <a href="https://blog.cloudflare.com/ssl-tls-recommender"><u>SSL/TLS Recommender</u></a> enabled on <b>August 8, 2024. </b>Following this, remaining Free and Pro customers can use this feature beginning <b>September 16, 2024</b> with Business and Enterprise customers to follow<b>.</b></p><p>Although it took longer than anticipated to roll out, our priority was to achieve an automatic configuration both transparently and without risking any site downtime. Taking this additional time allowed us to balance enhanced security with seamless site functionality, especially since origin server security configuration and capabilities are beyond Cloudflare's direct control. The new Automatic SSL/TLS setting will maximize and simplify the <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/"><u>encryption modes</u></a> Cloudflare uses to communicate with origin servers by using the <a href="https://blog.cloudflare.com/ssl-tls-recommender"><u>SSL/TLS Recommender</u></a>. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/53WNT2fwr0HuN2L0M5PKnJ/c005f100b455fd699d32d2f602ebf447/1885-2.png" />
          </figure><p>We first talked about this process in <a href="https://blog.cloudflare.com/introducing-universal-ssl"><u>2014</u></a>: at that time, securing connections was hard to configure, prohibitively expensive, and required specialized knowledge to set up correctly. To help alleviate these pains, Cloudflare introduced Universal SSL, which allowed web properties to obtain a <a href="https://www.cloudflare.com/application-services/products/ssl/"><u>free SSL/TLS certificate</u></a> to enhance the security of connections between browsers and Cloudflare. </p><p>This worked well and was easy because Cloudflare could manage the certificates and connection security from incoming browsers. As a result of that work, the number of encrypted HTTPS connections on the entire Internet <a href="https://blog.cloudflare.com/introducing-universal-ssl#:~:text=we%27ll%20have%20doubled%20that"><u>doubled</u></a> at that time. However, the connections made from Cloudflare to origin servers still required <i>manual</i> configuration of the encryption <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/"><u>modes</u></a> to let Cloudflare know the capabilities of the origin. </p><p>Today we’re excited to begin the sequel to Universal SSL and make security between Cloudflare and origins automatic and easy for everyone.</p>
    <div>
      <h2>History of securing origin-facing connections</h2>
      <a href="#history-of-securing-origin-facing-connections">
        
      </a>
    </div>
    <p>Ensuring that more bytes flowing across the Internet are automatically encrypted strengthens the barrier against interception, throttling, and censorship of Internet traffic by third parties. </p><p>Generally, two communicating parties (often a client and server) establish a secure connection using the <a href="https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/"><u>TLS</u></a> protocol. For a simplified breakdown: </p><ul><li><p>The client advertises the list of encryption parameters it supports (along with some metadata) to the server.</p></li><li><p>The server responds back with its own preference of the chosen encryption parameters. It also sends a digital certificate so that the client can authenticate its identity.</p></li><li><p>The client validates the server identity, confirming that the server is who it says it is.</p></li><li><p>Both sides agree on a <a href="https://www.cloudflare.com/learning/ssl/what-is-asymmetric-encryption/#:~:text=What%20is-,symmetric,-encryption%3F"><u>symmetric</u></a> secret key for the session that is used to encrypt and decrypt all transmitted content over the connection.</p></li></ul><p>Because Cloudflare acts as an intermediary between the client and our customer’s origin server, two separate TLS connections are established. One between the user’s browser and our network, and the other from our network to the origin server. This allows us to manage and optimize the security and performance of both connections independently.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6s0NxfVR5tCXuAzhI8pYdw/f1f48be437de48bf1b60495647016fbb/1885-3.png" />
          </figure><p>Unlike securing connections between clients and Cloudflare, the security capabilities of origin servers are not under our direct control. For example, we can manage the <a href="https://www.cloudflare.com/en-gb/learning/ssl/what-is-an-ssl-certificate/"><u>certificate</u></a> (the file used to verify identity and provide context on establishing encrypted connections) between clients and Cloudflare because it’s our job in that connection to provide it to clients, but when talking to origin servers, Cloudflare <i>is</i> the client.</p><p>Customers need to <a href="https://developers.cloudflare.com/ssl/origin-configuration/origin-ca/"><u>acquire and provision</u></a> an origin certificate on their host. They then have to configure Cloudflare to expect the new certificate from the origin when opening a connection. Needing to manually configure connection security across multiple different places requires effort and is prone to human error. </p><p>This issue was discussed in the original <a href="https://blog.cloudflare.com/introducing-universal-ssl"><u>Universal SSL blog</u></a>:</p><blockquote><p><i>For a site that did not have SSL before, we will default to our </i><a href="https://support.cloudflare.com/hc/en-us/articles/200170416-What-do-the-SSL-options-Off-Flexible-SSL-Full-SSL-Full-SSL-Strict-mean-"><i><u>Flexible SSL mode</u></i></a><i>, which means traffic from browsers to Cloudflare will be encrypted, but traffic from Cloudflare to a site's origin server will not. We strongly recommend site owners install a certificate on their web servers so we can encrypt traffic to the origin … Once you've installed a certificate on your web server, you can enable the </i><a href="https://support.cloudflare.com/hc/en-us/articles/200170416-What-do-the-SSL-options-Off-Flexible-SSL-Full-SSL-Full-SSL-Strict-mean-"><i><u>Full or Strict SSL modes</u></i></a><i> which encrypt origin traffic and provide a higher level of security.</i></p></blockquote><p>Over the years Cloudflare has introduced numerous products to help customers configure how Cloudflare should talk to their origin. These products include a <a href="https://blog.cloudflare.com/universal-ssl-encryption-all-the-way-to-the-origin-for-free/"><u>certificate authority</u></a> to help customers obtain a certificate to verify their origin server’s identity and encryption capabilities, <a href="https://developers.cloudflare.com/ssl/origin-configuration/authenticated-origin-pull/"><u>Authenticated Origin Pulls</u></a> that ensures only HTTPS (encrypted) requests from Cloudflare will receive a response from the origin server, and <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/"><u>Cloudflare Tunnels</u></a> that can be configured to proactively establish secure and private tunnels to the nearest Cloudflare data center. Additionally, the <a href="https://datatracker.ietf.org/doc/html/rfc8555/"><u>ACME</u></a> protocol and its corresponding <a href="https://certbot.eff.org/"><u>Certbot</u></a> tooling make it easier than ever to obtain and manage publicly-trusted certificates on customer origins. While these technologies help customers configure how Cloudflare should communicate with their origin server, they still require manual configuration changes on the origin and to Cloudflare settings. </p><p>Ensuring certificates are configured appropriately on origin servers and informing Cloudflare about how we should communicate with origins can be anxiety-inducing because misconfiguration can lead to downtime if something isn’t deployed or configured correctly. </p><p>To simplify this process and help identify the most secure options that customers could be using without any misconfiguration risk, <b>Cloudflare introduced the </b><a href="https://blog.cloudflare.com/ssl-tls-recommender"><b><u>SSL/TLS Recommender</u></b></a><b> in 2021.</b> The Recommender works by probing customer origins with different SSL/TLS settings to provide a recommendation whether the SSL/TLS <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/"><u>encryption mode</u></a> for the web property can be improved. The Recommender has been in production for three years and has consistently managed to provide high quality origin-security recommendations for Cloudflare’s customers. </p><p>The SSL/TLS Recommender system serves as the brain of the automatic origin connection service that we are announcing today. </p>
    <div>
      <h2>How does SSL/TLS Recommendation work?</h2>
      <a href="#how-does-ssl-tls-recommendation-work">
        
      </a>
    </div>
    <p>The Recommender works by actively comparing content on web pages that have been downloaded using different SSL/TLS modes to see if it is safe and risk-free to update the <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/"><u>mode</u></a> Cloudflare uses to connect to origin servers.</p><p>Cloudflare currently offers five SSL/TLS modes:</p><ol><li><p><b>Off</b>: No encryption is used for traffic between browsers and Cloudflare or between Cloudflare and origins. Everything is cleartext HTTP.</p></li><li><p><b>Flexible</b>: Traffic from browsers to Cloudflare can be encrypted via HTTPS, but traffic from Cloudflare to the origin server is not. This mode is common for origins that do not support TLS, though upgrading the origin configuration is recommended whenever possible. A guide for upgrading is available <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/full/#required-setup"><u>here</u></a>.</p></li><li><p><b>Full</b>: Cloudflare matches the browser request protocol when connecting to the origin. If the browser uses HTTP, Cloudflare connects to the origin via HTTP; if HTTPS, Cloudflare uses HTTPS without validating the origin’s certificate. This mode is common for origins that use self-signed or otherwise invalid certificates.</p></li><li><p><b>Full (Strict)</b>: Similar to Full Mode, but with added validation of the origin server’s certificate, which can be issued by a public CA like Let’s Encrypt or by Cloudflare Origin CA.</p></li><li><p><b>Strict (SSL-only origin pull)</b>: Regardless of whether the browser-to-Cloudflare connection uses HTTP or HTTPS, Cloudflare always connects to the origin over HTTPS with certificate validation.</p></li></ol><table><tr><th><p>
</p></th><th><p><b>HTTP from visitor</b></p></th><th><p><b>HTTPS from visitor</b></p></th></tr><tr><td><p><b>Off</b></p></td><td><p>HTTP to origin</p></td><td><p>HTTP to origin</p></td></tr><tr><td><p><b>Flexible</b></p></td><td><p>HTTP to origin</p></td><td><p>HTTP to origin</p></td></tr><tr><td><p><b>Full</b></p></td><td><p>HTTP to origin</p></td><td><p>HTTPS without cert validation to origin</p></td></tr><tr><td><p><b>Full (strict)</b></p></td><td><p>HTTP to origin</p></td><td><p>HTTPS with cert validation to origin</p></td></tr><tr><td><p><b>Strict (SSL-only origin pull)</b></p></td><td><p>HTTPS with cert validation to origin</p></td><td><p>HTTPS with cert validation to origin</p></td></tr></table><p>
The SSL/TLS Recommender works by crawling customer sites and collecting links on the page (like any web crawler). The Recommender downloads content over both HTTP and HTTPS, making GET requests to avoid modifying server resources. It then uses a content similarity algorithm, adapted from the research paper "<a href="https://www.cs.umd.edu/~dml/papers/https_tma20.pdf"><u>A Deeper Look at Web Content Availability and Consistency over HTTP/S"</u></a> (TMA Conference 2020), to determine if content matches. If the content does match, the Recommender makes a determination for whether the <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/"><u>SSL/TLS mode</u></a> can be increased without misconfiguration risk. </p><p>The recommendations are currently delivered to customers via email. </p><p>When the Recommender is making security recommendations, it errs on the side of maintaining current site functionality to avoid breakage and usability issues. If a website is non-functional, blocks all bots, or has SSL/TLS-specific Page Rules or Configuration Rules, the Recommender may not complete its scans and provide a recommendation. It was designed to maximize <a href="https://www.cloudflare.com/application-services/solutions/domain-protection-services/">domain security</a>, but will not help resolve website or domain functionality issues.</p><p>The crawler uses the user agent "<code>Cloudflare-SSLDetector</code>" and is included in Cloudflare’s list of known <a href="https://bots-directory.cfdata.org/bot/cloudflare-ssl-detector"><u>good bots</u></a>. It ignores <code>robots.txt</code> (except for rules specifically targeting its user agent) to ensure accurate recommendations.</p><p>When downloading content from your origin server over both HTTP and HTTPS and comparing the content, the Recommender understands the current SSL/TLS encryption mode that your website uses and what risk there might be to the site functionality if the recommendation is followed.</p>
    <div>
      <h2>Using SSL/TLS Recommender to automatically manage SSL/TLS settings </h2>
      <a href="#using-ssl-tls-recommender-to-automatically-manage-ssl-tls-settings">
        
      </a>
    </div>
    <p>Previously, signing up for the SSL/TLS Recommender provided a good experience for customers, but only resulted in an email recommendation in the event that a zone’s current SSL/TLS modes could be updated. To Cloudflare, this was a positive signal that customers wanted their websites to have more secure connections to their origin servers – over 2 million domains have enabled the SSL/TLS Recommender. However, we found that a significant number of users would not complete the next step of pushing the button to inform Cloudflare that we could communicate over the upgraded settings. <b>Only 30% of the recommendations that the system provided were followed. </b></p><p>With the system designed to increase security while avoiding any breaking changes, we wanted to provide an option for customers to allow the Recommender to help upgrade their site security, without requiring further manual action from the customer. <b>Therefore, we are introducing a new option for managing SSL/TLS configuration on Cloudflare: Automatic SSL/TLS. </b></p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/21q0D6rvhXHQxRe2ko4ITA/d5ca2f9a7139a2f55a16ca8bcf783ee0/1885-4.png" />
          </figure><p></p><p>Automatic SSL/TLS uses the SSL/TLS Recommender to make the determination as to what encryption mode is the most secure and safest for a website to be set to. If there is a <b>more secure</b> option for your website (based on your origin certification or capabilities), Automatic SSL/TLS will find it and apply it for your domain. The other option, <b>Custom SSL/TLS,</b> will work exactly like the setting the encryption mode does today. If you know what setting you want, just select it using Custom SSL/TLS, and we’ll use it. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/jFTSsmxG2WH0FqTklAJwb/eff9f692cdec3d199d32996bb0111441/1885-5.png" />
          </figure><p></p><p>Automatic SSL/TLS is currently meant to service an entire website, which typically works well for those with a single origin. For those concerned that they have more complex setups which use multiple origin servers with different security capabilities, don’t worry. Automatic SSL/TLS will still avoid breaking site functionality by looking for the best setting that works for all origins serving a part of the site’s traffic. </p><p>If customers want to segment the SSL/TLS mode used to communicate with the numerous origins that service their domain, they can achieve this by using <a href="https://developers.cloudflare.com/rules/configuration-rules/"><u>Configuration Rules</u></a>. These rules allow you to set more precise modes that Cloudflare should respect (based on path or subdomain or even IP address) to maximize the security of the domain based on your desired Rules criteria. If your site uses SSL/TLS-specific settings in a Configuration Rule or Page rule, those settings will <b>override the zone-wide Automatic and Custom settings.</b></p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6PCXOjFBtEucRUOP3BoMGQ/6ba2700c18cf4c49782bdf2d0ee33435/1885-6.png" />
          </figure><p></p><p>The goal of Automatic SSL/TLS<b> </b>is to simplify and maximize the origin-facing security for customers on Cloudflare. We want this to be the new default for all websites on Cloudflare, but we understand that not everyone wants this new default, and we will respect your decision for how Cloudflare should communicate with your origin server. If you block the Recommender from completing its crawls, the origin server is non-functional or can’t be crawled, or if you want to opt out of this default and just continue using the same encryption mode you are using today, we will make it easy for you to tell us what you prefer. </p>
    <div>
      <h2>How to onboard to Automatic SSL/TLS</h2>
      <a href="#how-to-onboard-to-automatic-ssl-tls">
        
      </a>
    </div>
    <p>To improve the security settings for everyone by default, we are making the following default changes to how Cloudflare configures the SSL/TLS level for all zones: </p><p>Starting on <b>August 8, 2024</b> websites with the <b>SSL/TLS Recommender currently enabled</b> will have the Automatic SSL/TLS setting enabled by default. Enabling does not mean that the Recommender will begin scanning and applying new settings immediately though. There will be a <b><u>one-month grace period</u></b> before the first scans begin and the recommended settings are applied. Enterprise (ENT) customers will get a <b><u>six-week grace period</u></b>. Origin scans will start getting scheduled by <b>September 9, 2024, for non-Enterprise </b>customers<b> </b>and<b> September 23rd for ENT customers with the SSL Recommender enabled</b>. This will give customers the ability to opt out by removing Automatic SSL/TLS and selecting the Custom mode that they want to use instead.</p><p>Further, during the second week of September <b>all new zones signing up for Cloudflare</b> will start seeing the Automatic SSL/TLS setting enabled by default.</p><p>Beginning <b>September 16, 2024, </b>remaining <b>Free and Pro</b> customers will start to see the new Automatic SSL/TLS setting. They will also have a one-month grace period to opt out before the scans start taking effect. </p><p>Customers in the cohort having the new Automatic SSL/TLS setting applied will receive an email communication regarding the date that they are slated for this migration as well as a banner on the dashboard that mentions this transition as well. If they do not wish for Cloudflare to change anything in their configurations, the process for opt-out of this migration is outlined below. </p><p>Following the successful migration of Free and Pro customers, we will proceed to Business and Enterprise customers with a similar cadence. These customers will get email notifications and information in the dashboard when they are in the migration cohort.</p><p>The Automatic SSL/TLS setting will not impact users that are already in Strict or Full (strict) mode nor will it impact websites that have opted-out. </p>
    <div>
      <h2>Opting out</h2>
      <a href="#opting-out">
        
      </a>
    </div>
    <p>There are a number of reasons why someone might want to configure a lower-than-optimal security setting for their website. Some may want to set a lower security setting for testing purposes or to debug some behavior. Whatever the reason, the options to opt-out of the Automatic SSL/TLS setting during the migration process are available in the dashboard and API.</p><p>To opt-out, simply select <b>Custom SSL/TLS</b> in the dashboard (instead of the enabled Automatic SSL/TLS) and we will continue to use the previously set encryption mode that you were using prior to the migration. Automatic and Custom SSL/TLS modes can be found in the <b>Overview</b> tab of the SSL/TLS section of the dashboard. To enable your preferred mode, select <b>configure</b>.  </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4meNmREGaXd1FJfxUKr5NN/bdbe1e07a2121d2f9ec2a11e64c77b7f/1885-7.png" />
          </figure><p></p><p>If you want to opt-out via the API you can make this API call on or before the grace period expiration date. </p>
            <pre><code>    curl --request PATCH \
        --url https://api.cloudflare.com/client/v4/zones/&lt;insert_zone_tag_here&gt;/settings/ssl_automatic_mode \
        --header 'Authorization: Bearer &lt;insert_api_token_here&gt;' \
        --header 'Content-Type: application/json' \
        --data '{"value":"custom"}'
</code></pre>
            <p></p><p>If an opt-out is triggered, there will not be a change to the currently configured SSL/TLS setting. You are also able to change the security level at any time by going to the SSL/TLS section of the dashboard and choosing the Custom setting you want (similar to how this is accomplished today). </p><p>If at a later point you’d like to opt-in to Automatic SSL/TLS, that option is available by changing your setting from Custom to Automatic.</p>
    <div>
      <h2>What if I want to be more secure now?</h2>
      <a href="#what-if-i-want-to-be-more-secure-now">
        
      </a>
    </div>
    <p>We will begin to roll out this change to customers with the SSL/TLS Recommender enabled on <b>August 8, 2024</b>. If you want to enroll in that group, we recommend enabling the Recommender as soon as possible. </p><p>If you read this and want to make sure you’re at the highest level of backend security already, we recommend <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/full-strict/"><u>Full (strict)</u></a> or <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/ssl-only-origin-pull/"><u>Strict mode</u></a>. Directions on how to make sure you’re correctly configured in either of those settings are available <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/full-strict/#required-setup"><u>here</u></a> and <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/ssl-only-origin-pull/#required-setup"><u>here</u></a>. </p><p>If you prefer to wait for us to automatically upgrade your connection to the maximum encryption mode your origin supports, please watch your inbox for the date we will begin rolling out this change for you.</p> ]]></content:encoded>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Network Services]]></category>
            <category><![CDATA[Encryption]]></category>
            <category><![CDATA[Research]]></category>
            <guid isPermaLink="false">2lhAhlWMei6M2NkhzAuULC</guid>
            <dc:creator>Alex Krivit</dc:creator>
            <dc:creator>Suleman Ahmad</dc:creator>
            <dc:creator>J Evans</dc:creator>
            <dc:creator>Yawar Jamal</dc:creator>
        </item>
        <item>
            <title><![CDATA[Avoiding downtime: modern alternatives to outdated certificate pinning practices]]></title>
            <link>https://blog.cloudflare.com/why-certificate-pinning-is-outdated/</link>
            <pubDate>Mon, 29 Jul 2024 13:00:37 GMT</pubDate>
            <description><![CDATA[ Outages caused by certificate pinning is increasing. Learn why certificate pinning hasn’t kept up with modern standards and find alternatives to improve security while reducing management overhead ]]></description>
            <content:encoded><![CDATA[ <p>In today’s world, technology is quickly evolving and some practices that were once considered the gold standard are quickly becoming outdated. At Cloudflare, we stay close to industry changes to ensure that we can provide the best solutions to our customers. One practice that we’re continuing to see in use that no longer serves its original purpose is certificate pinning. In this post, we’ll dive into certificate pinning, the consequences of using it in today’s <a href="https://www.cloudflare.com/en-gb/learning/ssl/how-does-public-key-encryption-work/">Public Key Infrastructure (PKI)</a> world, and alternatives to pinning that offer the same level of security without the management overhead.   </p><p>PKI exists to help issue and manage <a href="https://www.cloudflare.com/learning/ssl/what-is-an-ssl-certificate/">TLS certificates</a>, which are vital to keeping the Internet secure – they ensure that users access the correct applications or servers and that data between two parties stays encrypted. The mis-issuance of a certificate can pose great risk. For example, if a malicious party is able to issue a TLS certificate for your bank’s website, then they can potentially impersonate your bank and intercept that traffic to get access to your bank account. To prevent a mis-issued certificate from intercepting traffic, the server can give a certificate to the client and say “only trust connections if you see this certificate and drop any responses that present a different certificate” – this practice is called certificate pinning. </p><p>In the early 2000s, it was common for banks and other organizations that handle sensitive data to pin certificates to clients. However, over the last 20 years, TLS certificate issuance has evolved and changed, and new solutions have been developed to help customers achieve the security benefit they receive through certificate pinning, with simpler management, and without the risk of disruption.</p><p>Cloudflare’s mission is to help build a better Internet, which is why our teams are always focused on <a href="https://www.cloudflare.com/application-services/solutions/domain-protection-services/">keeping domains secure and online</a>.</p>
    <div>
      <h2>Why certificate pinning is causing more outages now than it did before</h2>
      <a href="#why-certificate-pinning-is-causing-more-outages-now-than-it-did-before">
        
      </a>
    </div>
    <p>Certificate pinning is not a new practice, so why are we emphasizing the need to stop using it <i>now</i>? The reason is that the PKI ecosystem is moving towards becoming more agile, flexible, and secure. As a part of this change, <a href="https://www.ssl.com/article/what-is-a-certificate-authority-ca/">certificate authorities (CAs)</a> are starting to rotate certificates and their intermediates, certificates that bridge the root certificate and the domain certificate, more frequently to <a href="https://www.cloudflare.com/application-services/solutions/certificate-lifecycle-management/">improve security and encourage automation</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6bcPbw10tESD1qHK6cP9yE/ac3f3df18f10a8a4595386a49a7ecd07/image3-12.png" />
            
            </figure><p>These more frequent certificate rotations are problematic from a pinning perspective because certificate pinning relies on the exact matching of certificates. When a certificate is rotated, the new certificate might not match the pinned certificate on the client side. If the pinned certificate is not updated to reflect the contents of the rotated certificate, the client will reject the new certificate, even if it’s valid and issued by the same CA. This mismatch leads to a failure in establishing a secure connection, causing the domain or application to become inaccessible until the pinned certificate is updated.</p><p>Since the start of 2024, we have seen the number of customer reported outages caused by certificate pinning significantly increase. (As of this writing, we are part way through July and Q3 has already seen as many outages as the last three quarters of 2023 combined.)</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1U4AFw29oL1GCcen93rnYr/5dea495d82170011725de472cfd7f98a/image4-4.png" />
            
            </figure><p>We can attribute this rise to two major events: Cloudflare migrating away from using DigiCert as a certificate authority and Google and Let’s Encrypt intermediate CA rotations.</p><p>Before migrating customer’s certificates away from using DigiCert as the CA, Cloudflare sent multiple notifications to customers to inform them that they should update or remove their certificate pins, so that the migration does not impact their domain’s availability.</p><p>However, what we’ve learned is that almost all customers that were impacted by the change were unaware that they had a certificate pin in place. One of the consequences of using certificate pinning is that the “set and forget” mentality doesn’t work, now that certificates are being rotated more frequently. Instead, changes need to be closely monitored to ensure that a regular certificate renewal doesn't cause an outage. This goes to show that to implement certificate pinning successfully, customers need a robust system in place to track certificate changes and implement them.</p><p>We built our <a href="https://developers.cloudflare.com/ssl/edge-certificates/universal-ssl/">Universal SSL</a> pipeline to be resilient and redundant, ensuring that we can always <a href="https://www.cloudflare.com/application-services/products/ssl/">issue and renew a TLS certificate</a> on behalf of our customers, <a href="/introducing-backup-certificates">even in the event of a compromise or revocation</a>. CAs are starting to make changes like more frequent certificate rotations to encourage a move towards a more secure ecosystem. Now, it’s up to domain owners to stop implementing legacy practices like certificate pinning, which cause breaking changes, and instead start adopting modern standards that aim to provide the same level of security, but without the management overhead or risk.</p>
    <div>
      <h2>Modern standards &amp; practices are making the need for certificate pinning obsolete</h2>
      <a href="#modern-standards-practices-are-making-the-need-for-certificate-pinning-obsolete">
        
      </a>
    </div>
    
    <div>
      <h3>Shorter certificate lifetimes</h3>
      <a href="#shorter-certificate-lifetimes">
        
      </a>
    </div>
    <p>Over the last few years, we have seen certificate lifetimes quickly decrease. Before 2011, a certificate could be valid for up to 96 months (eight years) and now, in 2024, the maximum validity period for a certificate is 1 year. We’re seeing this trend continue to develop, with Google Chrome <a href="https://www.chromium.org/Home/chromium-security/root-ca-policy/moving-forward-together/">pushing</a> for shorter CA, intermediate, and certificate lifetimes, advocating for 3 month certificate validity as the new standard.</p><p>This push improves security and redundancy of the entire PKI ecosystem in several ways. First, it reduces the scope of a compromise by limiting the amount of time that a malicious party could control a TLS certificate or private key. Second, it reduces reliance on certificate revocation, a process that lacks standardization and enforcement by clients, browsers, and CAs. Lastly, it encourages automation as a replacement for legacy certificate practices that are time-consuming and error-prone.</p><p>Cloudflare is moving towards only using CAs that follow the <a href="https://datatracker.ietf.org/doc/html/rfc8555">ACME</a> (Automated Certificate Management Environment) protocol, which by default, issues certificates with 90 day validity periods. We have already started to roll this out to Universal SSL certificates and have removed the ability to issue 1-year certificates as a part of our <a href="https://developers.cloudflare.com/ssl/reference/migration-guides/digicert-update/">reduced usage of DigiCert</a>.</p>
    <div>
      <h3>Regular rotation of intermediate certificates</h3>
      <a href="#regular-rotation-of-intermediate-certificates">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/38pDF476Nnjx7acXBN5eTM/ece6376485bb5232e4574d05c7294564/image2-8.png" />
            
            </figure><p>The CAs that Cloudflare partners with, <a href="https://letsencrypt.org/">Let’s Encrypt</a> and <a href="https://pki.goog/">Google Trust Services</a>, are starting to rotate their intermediate CAs more frequently. This increased rotation is beneficial from a security perspective because it limits the lifespan of intermediate certificates, reducing the window of opportunity for attackers to exploit a compromised intermediate. Additionally, regular rotations make it easier to revoke an intermediate certificate if it becomes compromised, enhancing the overall security and resiliency of the PKI ecosystem.</p><p>Both Let’s Encrypt and Google Trust Services changed their intermediate chains in June 2024. In addition, <a href="https://community.letsencrypt.org/t/lets-encrypt-new-intermediate-certificates/209498">Let’s Encrypt has started to balance their certificate issuance across 10 intermediates</a> (5 RSA and 5 ECDSA).</p><p>Cloudflare customers using <a href="https://www.cloudflare.com/advanced-certificate-manager/">Advanced Certificate Manager</a> have the ability to choose their issuing CA. The issue is that even if Cloudflare uses the same CA for a certificate renewal, there is no guarantee that the same certificate chain (root or intermediate) will be used to issue the renewed certificate. As a result, if pinning is used, a successful renewal could cause a full outage for a domain or application.</p><p>This happens because certificate pinning relies on the exact matching of certificates. When an intermediate certificate is rotated or changed, the new certificate might not match the pinned certificate on the client side. As a result, the client will reject the renewed certificate, even if it’s a valid certificate issued by the same CA. This mismatch leads to a failure on the client side, causing the domain to become inaccessible until the pinned certificate is updated to reflect the new intermediate certificate. This risk of an unexpected outage is a major downside of continuing to use certificate pinning, especially as CAs increasingly update their intermediates as a security measure.</p>
    <div>
      <h3>Increased use of certificate transparency</h3>
      <a href="#increased-use-of-certificate-transparency">
        
      </a>
    </div>
    <p><a href="/introducing-certificate-transparency-and-nimbus">Certificate transparency (CT) logs</a> provide a standardized framework for monitoring and auditing the issuance of TLS certificates. CT logs help detect misissued or malicious certificates and Cloudflare customers can set up <a href="/introducing-certificate-transparency-monitoring">CT monitoring</a> to receive notifications about any certificates issued for their domain. This provides a better mechanism for detecting certificate mis-issuance, reducing the need for pinning.</p>
    <div>
      <h3>Why modern standards make certificate pinning obsolete</h3>
      <a href="#why-modern-standards-make-certificate-pinning-obsolete">
        
      </a>
    </div>
    <p>Together, these practices – shorter certificate lifetimes, regular rotations of intermediate certificates, and increased use of certificate transparency – address the core security concerns that certificate pinning was initially designed to mitigate. Shorter lifetimes and frequent rotations limit the impact of compromised certificates, while certificate transparency allows for real time monitoring and detection of misissued certificates. These advancements are automated, scalable, and robust and eliminate the need for the manual and error-prone process of certificate pinning. By adopting these modern standards, organizations can achieve a higher level of security and resiliency without the management overhead and risk associated with certificate pinning.</p>
    <div>
      <h2>Reasons behind continued use of certificate pinning</h2>
      <a href="#reasons-behind-continued-use-of-certificate-pinning">
        
      </a>
    </div>
    <p>Originally, certificate pinning was designed to prevent <a href="/monsters-in-the-middleboxes/">monster-in-the-middle (MITM)</a> attacks by associating a hostname with a specific TLS certificate, ensuring that a client could only access an application if the server presented a certificate issued by the domain owner.</p><p>Certificate pinning was traditionally used to secure IoT (Internet of Things) devices, mobile applications, and APIs. IoT devices are usually equipped with more limited processing power and are oftentimes unable to perform software updates. As a result, they’re less likely to perform things like certificate revocation checks to ensure that they’re using a valid certificate. As a result, it’s common for these devices to come pre-installed with a set of trusted certificate pins to ensure that they can maintain a high level of security. However, the increased frequency of certificate changes poses significant risk, as many devices have immutable software, preventing timely updates to certificate pins during renewals.</p><p>Similarly, certificate pinning has been employed to secure Android and iOS applications, ensuring that only the correct certificates are served. Despite this, both <a href="https://developer.apple.com/news/?id=g9ejcf8y">Apple</a> and <a href="https://developer.android.com/privacy-and-security/security-ssl">Google</a> warn developers against the use of certificate pinning due to the potential for failures if not implemented correctly.</p>
    <div>
      <h2>Understanding the trade-offs of different certificate pinning implementations</h2>
      <a href="#understanding-the-trade-offs-of-different-certificate-pinning-implementations">
        
      </a>
    </div>
    <p>While certificate pinning can be applied at various levels of the certificate chain, offering different levels of granularity and security, we don’t recommend it due to the challenges and risks associated with its use.</p>
    <div>
      <h3>Pinning certificates at the root certificate</h3>
      <a href="#pinning-certificates-at-the-root-certificate">
        
      </a>
    </div>
    <p>Pinning the root certificate instructs a client to only trust certificates issued by that specific Certificate Authority (CA).</p><p><b>Advantages</b>:</p><ul><li><p><b>Simplified management:</b> Since root certificates have long lifetimes (&gt;10 years) and rarely change, pinning at the root reduces the need to frequently update certificate pins, making this the easiest option in terms of management overhead.</p></li></ul><p><b>Disadvantages:</b></p><ul><li><p><b>Broader trust:</b> Most Certificate Authorities (CAs) issue their certificates from one root, so pinning a root CA certificate enables the client to trust every certificate issued from that CA. However, this broader trust can be problematic. If the root CA is compromised, every certificate issued by that CA is also compromised, which significantly increases the potential scope and impact of a security breach. This broad trust can therefore create a single point of failure, making the entire ecosystem more vulnerable to attacks.</p></li><li><p><b>Neglected Maintenance:</b> Root certificates are infrequently rotated, which can lead to a “set and forget” mentality when pinning them. Although it's rare, CAs do <a href="https://letsencrypt.org/2023/07/10/cross-sign-expiration.html">change their roots</a> and when this happens, a correctly renewed certificate will break the pin, causing an outage. Since these pins are rarely updated, resolving such outages can be time-consuming as engineering teams try to identify and locate where the outdated pins have been set.</p></li></ul>
    <div>
      <h3>Pinning certificates at the intermediate certificate</h3>
      <a href="#pinning-certificates-at-the-intermediate-certificate">
        
      </a>
    </div>
    <p>Pinning an intermediate certificate instructs a client to only trust certificates issued by a specific intermediate CA, issued from a trusted root CA. With lifetimes ranging from 3 to 10 years, intermediate certificates offer a better balance between security and flexibility.</p><p><b>Advantages:</b></p><ul><li><p><b>Better security:</b> Narrows down the trust to certificates issued by a specific intermediate CA.</p></li><li><p><b>Simpler management:</b> With intermediate CA lifetimes spanning a few years, certificate pins require less frequent updates, reducing the maintenance burden.</p></li></ul><p><b>Disadvantages:</b></p><ul><li><p><b>Broad trust:</b> While pinning on an intermediate certificate is more restrictive than pinning on a root certificate, it still allows for a broad range of certificates to be trusted.</p></li><li><p><b>Maintenance:</b> Intermediate certificates are rotated more frequently than root certificates, requiring more regular updates to pinned certificates.</p></li><li><p><b>Less predictability:</b> With CAs like Let’s Encrypt issuing their certificates from varying intermediates, it’s no longer possible to predict which certificate chain will be used during a renewal, making it more likely for a certificate renewal to break a certificate pin and cause an outage.</p></li></ul>
    <div>
      <h3>Pinning certificates at the leaf certificate</h3>
      <a href="#pinning-certificates-at-the-leaf-certificate">
        
      </a>
    </div>
    <p>Pinning the leaf certificate instructs a client to only trust that specific certificate. Although this option offers the highest level of security, it also poses the greatest risk of causing an outage during a certificate renewal.</p><p><b>Advantages:</b></p><ul><li><p><b>High security:</b> Provides the highest level of security by ensuring that only a specific certificate is trusted, minimizing the risk of a monster-in-the-middle attack.</p></li></ul><p><b>Disadvantages:</b></p><ul><li><p><b>Risky:</b> Requires careful management of certificate renewals to prevent outages.</p></li><li><p><b>Management burden:</b> Leaf certificates have shorter lifetimes, with 90 days becoming the standard, requiring constant updates to the certificate pin to avoid a breaking change during a renewal.</p></li></ul>
    <div>
      <h2>Alternatives to certificate pinning</h2>
      <a href="#alternatives-to-certificate-pinning">
        
      </a>
    </div>
    <p>Given the risks and challenges associated with certificate pinning, we recommend the following as more effective and modern alternatives to achieve the same level of security (preventing a mis-issued certificate from intercepting traffic) that certificate pinning aims to provide.</p>
    <div>
      <h3>Shorter certificate lifetimes</h3>
      <a href="#shorter-certificate-lifetimes">
        
      </a>
    </div>
    <p>Using shorter certificate lifetimes ensures that certificates are regularly renewed and replaced, reducing the risk of misuse of a compromised certificate by limiting the window of opportunity for attackers.</p><p>By default, Cloudflare issues 90-day certificates for customers. Customers using Advanced Certificate Manager can request TLS certificates with lifetimes as short as 14 days.</p>
    <div>
      <h3>CAA records to restrict which CAs can issue certificates for a domain</h3>
      <a href="#caa-records-to-restrict-which-cas-can-issue-certificates-for-a-domain">
        
      </a>
    </div>
    <p><a href="https://developers.cloudflare.com/ssl/edge-certificates/caa-records/">Certification Authority Authorization</a> (CAA) DNS records allow domain owners to specify which CAs are allowed to issue certificates for their domain. This adds an extra layer of security by restricting issuance to trusted authorities, providing a similar benefit as pinning a root CA certificate. For example, if you’re using Google Trust Services as your CA, you can add the following CAA DNS record to ensure that only that CA issues certificates for your domain:</p>
            <pre><code>example.com         CAA 0 issue "pki.goog"</code></pre>
            <p>By default, <a href="https://developers.cloudflare.com/ssl/edge-certificates/caa-records/#caa-records-added-by-cloudflare">Cloudflare sets CAA records</a> on behalf of customers to ensure that certificates can be issued from the CAs that Cloudflare partners with. Customers can choose to further restrict that list of CAs by adding their own CAA records.</p>
    <div>
      <h3>Certificate Transparency &amp; monitoring</h3>
      <a href="#certificate-transparency-monitoring">
        
      </a>
    </div>
    <p>Certificate Transparency (CT) provides the ability to monitor and audit certificate issuances. By logging certificates in publicly accessible CT logs, organizations are able to monitor, detect, and respond to misissued certificates at the time they are issued.</p><p>Cloudflare customers can set up <a href="https://developers.cloudflare.com/ssl/edge-certificates/additional-options/certificate-transparency-monitoring/">CT Monitoring</a> to receive notifications when certificates are issued in their domain. Today, we notify customers using the product about all certificates issued for their domains. In the future, we will allow customers to filter those notifications, so that they are only notified when an external party that isn’t Cloudflare issues a certificate for the owner’s domain. This product is available to all customers and can be enabled with the click of a button.</p>
    <div>
      <h3>Multi-vantage point Domain Control Validation (DCV) checks to prevent mis-issuances</h3>
      <a href="#multi-vantage-point-domain-control-validation-dcv-checks-to-prevent-mis-issuances">
        
      </a>
    </div>
    <p>For a CA to issue a certificate, the domain owner needs to prove ownership of the domain by serving Domain Control Validation (DCV) records. While uncommon, one attack vector of DCV validation allows an actor to perform BGP hijacking to spoof the DNS response and trick a CA into mis-issuing a certificate. To prevent this form of attack, CAs have started to perform DCV validation checks from multiple locations to ensure that a certificate is only issued when a full quorum is met.</p><p>Cloudflare has developed <a href="/secure-certificate-issuance">its own solution</a> that CAs can use to perform multi vantage point DCV checks. In addition, Cloudflare partners with CAs like Let’s Encrypt who continue to develop these checks to support <a href="https://community.letsencrypt.org/t/lets-encrypt-is-adding-two-new-remote-perspectives-for-domain-validation/214123/3">new locations</a>, reducing the risk of a certificate mis-issuance.</p>
    <div>
      <h3>Specifying ACME account URI in CAA records</h3>
      <a href="#specifying-acme-account-uri-in-caa-records">
        
      </a>
    </div>
    <p>A new enhancement to the <a href="https://datatracker.ietf.org/doc/html/rfc8555">ACME protocol</a> allows certificate requesting parties to specify an ACME account URI, the ID of the ACME account that will be requesting the certificates, in CAA records to tighten control over the certificate issuance process. This ensures that only certificates issued through an authorized ACME account are trusted, adding another layer of verification to certificate issuance. Let’s Encrypt <a href="https://letsencrypt.org/docs/caa/">supports</a> this extension to CAA records which allows users with a Let’s Encrypt certificate to set a CAA DNS record, such as the following:</p>
            <pre><code>example.com         CAA 0 issue "letsencrypt.org;accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/&lt;account_id&gt;"</code></pre>
            <p>With this record, Let’s Encrypt subscribers can ensure that only Let’s Encrypt can issue certificates for their domain and that these certificates were only issued through their ACME account.</p><p>Cloudflare will look to support this enhancement automatically for customers in the future.</p>
    <div>
      <h2>Conclusion</h2>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>Years ago, certificate pinning was a valuable tool for enhancing security, but over the last 20 years, it has failed to keep up with new advancements in the certificate ecosystem. As a result, instead of providing the intended security benefit, it has increased the number of outages caused during a successful certificate renewal. With new enhancements in certificate issuance standards and certificate transparency, we’re encouraging our customers and the industry to move towards adopting those new standards and deprecating old ones.</p><p>If you’re a Cloudflare customer and are required to pin your certificate, the only way to ensure a zero-downtime renewal is to upload your own custom certificates. We recommend using the <a href="/staging-tls-certificate-every-deployment-safe-deployment">staging network</a> to test your certificate renewal to ensure you have updated your certificate pin.</p> ]]></content:encoded>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Network Services]]></category>
            <category><![CDATA[Certificate Pinning]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[Certificate Transparency]]></category>
            <guid isPermaLink="false">60UVrfwDr6RkKdtneMF0ph</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[How we ensure Cloudflare customers aren't affected by Let's Encrypt's certificate chain change]]></title>
            <link>https://blog.cloudflare.com/shortening-lets-encrypt-change-of-trust-no-impact-to-cloudflare-customers/</link>
            <pubDate>Fri, 12 Apr 2024 13:00:09 GMT</pubDate>
            <description><![CDATA[ Let’s Encrypt’s cross-signed chain will be expiring in September. This will affect legacy devices with outdated trust stores (Android versions 7.1.1 or older). To prevent this change from impacting customers, Cloudflare will shift Let’s Encrypt certificates upon renewal to use a different CA ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7xrPBUpEjsmaBkRYhxiRIr/c95f42fffef36c7d595422b4724c8665/Untitled--3--1.png" />
            
            </figure><p><a href="https://letsencrypt.org/">Let’s Encrypt</a>, a publicly trusted certificate authority (CA) that Cloudflare uses to issue TLS certificates, has been relying on two distinct certificate chains. One is cross-signed with <a href="https://www.identrust.com/">IdenTrust</a>, a globally trusted CA that has been around since 2000, and the other is Let’s Encrypt’s own root CA, ISRG Root X1. Since Let’s Encrypt launched, <a href="https://letsencrypt.org/certificates/#root-certificates">ISRG Root X1</a> has been steadily gaining its own device compatibility.</p><p>On September 30, 2024, Let’s Encrypt’s certificate chain cross-signed with IdenTrust will <a href="https://letsencrypt.org/2023/07/10/cross-sign-expiration.html">expire</a>. After the cross-sign expires, servers will no longer be able to serve certificates signed by the cross-signed chain. Instead, all Let’s Encrypt certificates will use the ISRG Root X1 CA.</p><p>Most devices and browser versions released after 2016 will not experience any issues as a result of the change since the ISRG Root X1 will already be installed in those clients’ trust stores. That's because these modern browsers and operating systems were built to be agile and flexible, with upgradeable trust stores that can be updated to include new certificate authorities.</p><p>The change in the certificate chain will impact legacy devices and systems, such as devices running Android version 7.1.1 (released in 2016) or older, as those exclusively rely on the cross-signed chain and lack the ISRG X1 root in their trust store. These clients will encounter TLS errors or warnings when accessing domains secured by a Let’s Encrypt certificate. We took a look at the data ourselves and found that, of all Android requests, 2.96% of them come from devices that will be affected by the change. That’s a substantial portion of traffic that will lose access to the Internet. We’re committed to keeping those users online and will modify our certificate pipeline so that we can continue to serve users on older devices without requiring any manual modifications from our customers.</p>
    <div>
      <h3>A better Internet, for everyone</h3>
      <a href="#a-better-internet-for-everyone">
        
      </a>
    </div>
    <p>In the past, we invested in efforts like <a href="/sha-1-deprecation-no-browser-left-behind/">“No Browsers Left Behind”</a> to help ensure that we could continue to support clients as SHA-1 based algorithms were being deprecated. Now, we’re applying the same approach for the upcoming Let’s Encrypt change.</p><p>We have made the decision to remove Let’s Encrypt as a certificate authority from all flows where Cloudflare dictates the CA, impacting Universal SSL customers and those using SSL for SaaS with the “default CA” choice.</p><p>Starting in June 2024, one certificate lifecycle (90 days) before the cross-sign chain expires, we’ll begin migrating Let’s Encrypt certificates that are up for renewal to use a different CA, one that ensures compatibility with older devices affected by the change. That means that going forward, customers will only receive Let’s Encrypt certificates if they explicitly request Let’s Encrypt as the CA.</p><p>The change that Let's Encrypt is making is a necessary one. For us to move forward in supporting new standards and protocols, we need to make the Public Key Infrastructure (PKI) ecosystem more agile. By retiring the cross-signed chain, Let’s Encrypt is pushing devices, browsers, and clients to support adaptable trust stores.</p><p>However, we’ve observed <a href="/sha-1-deprecation-no-browser-left-behind/">changes like this in the past</a> and while they push the adoption of new standards, they disproportionately impact users in economically disadvantaged regions, where access to new technology is limited.</p><p>Our mission is to help build a better Internet and that means supporting users worldwide. We previously published a <a href="/upcoming-lets-encrypt-certificate-chain-change-and-impact-for-cloudflare-customers">blog post about the Let’s Encrypt change</a>, asking customers to switch their certificate authority if they expected any impact. However, determining the impact of the change is challenging. Error rates due to trust store incompatibility are primarily logged on clients, reducing the visibility that domain owners have. In addition, while there might be no requests incoming from incompatible devices today, it doesn’t guarantee uninterrupted access for a user tomorrow.</p><p>Cloudflare’s certificate pipeline has evolved over the years to be resilient and flexible, allowing us to seamlessly adapt to changes like this without any negative impact to our customers.  </p>
    <div>
      <h3>How Cloudflare has built a robust TLS certificate pipeline</h3>
      <a href="#how-cloudflare-has-built-a-robust-tls-certificate-pipeline">
        
      </a>
    </div>
    <p>Today, Cloudflare manages tens of millions of certificates on behalf of customers. For us, a successful pipeline means:</p><ol><li><p>Customers can always obtain a TLS certificate for their domain</p></li><li><p>CA related issues have zero impact on our customer’s ability to obtain a certificate</p></li><li><p>The best security practices and modern standards are utilized</p></li><li><p>Optimizing for future scale</p></li><li><p>Supporting a wide range of clients and devices</p></li></ol><p>Every year, we introduce new optimizations into our certificate pipeline to maintain the highest level of service. Here’s how we do it…</p>
    <div>
      <h3>Ensuring customers can always obtain a TLS certificate for their domain</h3>
      <a href="#ensuring-customers-can-always-obtain-a-tls-certificate-for-their-domain">
        
      </a>
    </div>
    <p>Since the launch of Universal SSL in 2014, Cloudflare has been responsible for issuing and serving a TLS certificate for every domain that’s protected by our network. That might seem trivial, but there are a few steps that have to successfully execute in order for a domain to receive a certificate:</p><ol><li><p>Domain owners need to complete <a href="https://developers.cloudflare.com/ssl/edge-certificates/changing-dcv-method/">Domain Control Validation</a> for every certificate issuance and renewal.</p></li><li><p>The certificate authority needs to verify the Domain Control Validation tokens to issue the certificate.</p></li><li><p><a href="https://developers.cloudflare.com/ssl/edge-certificates/troubleshooting/caa-records/">CAA records</a>, which dictate which CAs can be used for a domain, need to be checked to ensure only authorized parties can issue the certificate.</p></li><li><p>The certificate authority must be available to issue the certificate.</p></li></ol><p>Each of these steps requires coordination across a number of parties — domain owners, CDNs, and certificate authorities. At Cloudflare, we like to be in control when it comes to the success of our platform. That’s why we make it our job to ensure each of these steps can be successfully completed.</p><p>We ensure that every certificate issuance and renewal requires minimal effort from our customers. To get a certificate, a domain owner has to complete Domain Control Validation (DCV) to prove that it does in fact own the domain. Once the certificate request is initiated, the CA will return DCV tokens which the domain owner will need to place in a DNS record or an HTTP token. If you’re using Cloudflare as your DNS provider, Cloudflare completes DCV on your behalf by automatically placing the TXT token returned from the CA into your DNS records. Alternatively, if you use an external DNS provider, we offer the option to <a href="/introducing-dcv-delegation/">Delegate DCV</a> to Cloudflare for automatic renewals without any customer intervention.</p><p>Once DCV tokens are placed, Certificate Authorities (CAs) verify them. CAs conduct this <a href="/secure-certificate-issuance">verification from multiple vantage points</a> to prevent spoofing attempts. However, since these checks are done from multiple countries and ASNs (Autonomous Systems), they may trigger a Cloudflare WAF rule which can cause the DCV check to get blocked. We made sure to update our WAF and security engine to recognize that these requests are coming from a CA to ensure they're never blocked so DCV can be successfully completed.</p><p>Some customers have CA preferences, due to internal requirements or compliance regulations. To prevent an unauthorized CA from issuing a certificate for a domain, the domain owner can create a Certification Authority Authorization (CAA) DNS record, specifying which CAs are allowed to issue a certificate for that domain. To ensure that customers can always obtain a certificate, we check the CAA records before requesting a certificate to know which CAs we should use. If the CAA records block all of the <a href="https://developers.cloudflare.com/ssl/reference/certificate-authorities/">CAs that are available</a> in Cloudflare’s pipeline and the customer has not uploaded a certificate from the CA of their choice, then we add CAA records on our customers’ behalf to ensure that they can get a certificate issued. Where we can, we optimize for preference. Otherwise, it’s our job to prevent an outage by ensuring that there’s always a TLS certificate available for the domain, even if it does not come from a preferred CA.</p><p>Today, Cloudflare is not a publicly trusted certificate authority, so we rely on the CAs that we use to be highly available. But, 100% uptime is an unrealistic expectation. Instead, our pipeline needs to be prepared in case our CAs become unavailable.</p>
    <div>
      <h4>Ensuring that CA-related issues have zero impact on our customer’s ability to obtain a certificate</h4>
      <a href="#ensuring-that-ca-related-issues-have-zero-impact-on-our-customers-ability-to-obtain-a-certificate">
        
      </a>
    </div>
    <p>At Cloudflare, we like to think ahead, which means preventing incidents before they happen. It’s not uncommon for CAs to become unavailable — sometimes this happens because of an outage, but more commonly, CAs have maintenance periods every so often where they become unavailable for some period of time.</p><p>It’s our job to ensure CA redundancy, which is why we always have multiple CAs ready to issue a certificate, ensuring high availability at all times. If you've noticed different CAs issuing your Universal SSL certificates, that's intentional. We evenly distribute the load across our CAs to avoid any single point of failure. Plus, we keep a close eye on latency and error rates to detect any issues and automatically switch to a different CA that's available and performant. You may not know this, but one of our CAs has around 4 scheduled maintenance periods every month. When this happens, our automated systems kick in seamlessly, keeping everything running smoothly. This works so well that our internal teams don’t get paged anymore because everything <i>just works.</i></p>
    <div>
      <h4>Adopting best security practices and modern standards  </h4>
      <a href="#adopting-best-security-practices-and-modern-standards">
        
      </a>
    </div>
    <p>Security has always been, and will continue to be, Cloudflare’s top priority, and so maintaining the highest security standards to safeguard our customer’s data and private keys is crucial.</p><p>Over the past decade, the <a href="https://cabforum.org/">CA/Browser Forum</a> has advocated for reducing certificate lifetimes from 5 years to 90 days as the industry norm. This shift helps minimize the risk of a key compromise. When certificates are renewed every 90 days, their private keys remain valid for only that period, reducing the window of time that a bad actor can make use of the compromised material.</p><p>We fully embrace this change and have made 90 days the default certificate validity period. This enhances our security posture by ensuring regular key rotations, and has pushed us to develop tools like DCV Delegation that promote <a href="https://www.cloudflare.com/application-services/solutions/certificate-lifecycle-management/">automation</a> around frequent certificate renewals, without the added overhead. It’s what enables us to offer certificates with validity periods as low as two weeks, for customers that want to rotate their private keys at a high frequency without any concern that it will lead to certificate renewal failures.</p><p>Cloudflare has always been at the forefront of new protocols and standards. <a href="https://www.cloudflare.com/press-releases/2014/cloudflare-offers-the-industrys-first-universal-ssl-for-free/">It’s no secret</a> that when we support a new protocol, adoption skyrockets. This month, we will be adding <a href="/ecdsa-the-digital-signature-algorithm-of-a-better-internet">ECDSA</a> support for certificates issued from <a href="https://pki.goog/">Google Trust Services</a>. With <a href="https://www.cloudflare.com/learning/dns/dnssec/ecdsa-and-dnssec/">ECDSA</a>, you get the same level of security as RSA but with smaller keys. Smaller keys mean smaller certificates and less data passed around to establish a TLS connection, which results in quicker connections and faster loading times.</p>
    <div>
      <h4>Optimizing for future scale</h4>
      <a href="#optimizing-for-future-scale">
        
      </a>
    </div>
    <p>Today, Cloudflare issues almost 1 million certificates per day. With the recent shift towards shorter certificate lifetimes, we continue to improve our pipeline to be more robust. But even if our pipeline can handle the significant load, we still need to rely on our CAs to be able to scale with us. With every CA that we integrate, we instantly become one of their biggest consumers. We hold our CAs to high standards and push them to improve their infrastructure to scale. This doesn’t just benefit Cloudflare’s customers, but it helps the Internet by requiring CAs to handle higher volumes of issuance.</p><p>And now, with Let’s Encrypt shortening their chain of trust, we’re going to add an additional improvement to our pipeline — one that will ensure the best device compatibility for all.</p>
    <div>
      <h4>Supporting all clients — legacy and modern</h4>
      <a href="#supporting-all-clients-legacy-and-modern">
        
      </a>
    </div>
    <p>The upcoming Let’s Encrypt change will prevent legacy devices from making requests to domains or applications that are protected by a Let’s Encrypt certificate. We don’t want to cut off Internet access from any part of the world, which means that we’re going to continue to provide the best device compatibility to our customers, despite the change.</p><p>Because of all the recent enhancements, we are able to reduce our reliance on Let’s Encrypt without impacting the reliability or quality of service of our certificate pipeline. One certificate lifecycle (90 days) before the change, we are going to start shifting certificates to use a different CA, one that’s compatible with the devices that will be impacted. By doing this, we’ll mitigate any impact without any action required from our customers. The only customers that will continue to use Let’s Encrypt are ones that have specifically chosen Let’s Encrypt as the CA.</p>
    <div>
      <h3>What to expect of the upcoming Let’s Encrypt change</h3>
      <a href="#what-to-expect-of-the-upcoming-lets-encrypt-change">
        
      </a>
    </div>
    <p>Let’s Encrypt’s cross-signed chain will <a href="https://letsencrypt.org/2023/07/10/cross-sign-expiration.html">expire</a> on September 30th, 2024. Although Let’s Encrypt plans to stop issuing certificates from this chain on June 6th, 2024, Cloudflare will continue to serve the cross-signed chain for all Let’s Encrypt certificates until September 9th, 2024.</p><p>90 days or one certificate lifecycle before the change, we are going to start shifting Let’s Encrypt certificates to use a different certificate authority. We’ll make this change for all products where Cloudflare is responsible for the CA selection, meaning this will be automatically done for customers using Universal SSL and SSL for SaaS with the “default CA” choice.</p><p>Any customers that have specifically chosen Let’s Encrypt as their CA will receive an email notification with a list of their Let’s Encrypt certificates and information on whether or not we’re seeing requests on those hostnames coming from legacy devices.</p><p>After September 9th, 2024, Cloudflare will serve all Let’s Encrypt certificates using the ISRG Root X1 chain. Here is what you should expect based on the certificate product that you’re using:</p>
    <div>
      <h4>Universal SSL</h4>
      <a href="#universal-ssl">
        
      </a>
    </div>
    <p>With <a href="https://developers.cloudflare.com/ssl/edge-certificates/universal-ssl/">Universal SSL</a>, Cloudflare chooses the CA that is used for the domain’s certificate. This gives us the power to choose the best certificate for our customers. <b>If you are using Universal SSL, there are no changes for you to make to prepare for this change</b>. Cloudflare will automatically shift your certificate to use a more compatible CA.</p>
    <div>
      <h4>Advanced Certificates</h4>
      <a href="#advanced-certificates">
        
      </a>
    </div>
    <p>With <a href="https://developers.cloudflare.com/ssl/edge-certificates/advanced-certificate-manager/">Advanced Certificate Manager</a>, customers specifically choose which CA they want to use. If Let’s Encrypt was specifically chosen as the CA for a certificate, we will respect the choice, because customers may have specifically chosen this CA due to internal requirements, or because they have implemented certificate pinning, which we highly discourage.</p><p>If we see that a domain using an Advanced certificate issued from Let’s Encrypt will be impacted by the change, then we will send out email notifications to inform those customers which certificates are using Let’s Encrypt as their CA and whether or not those domains are receiving requests from clients that will be impacted by the change. Customers will be responsible for changing the CA to another provider, if they chose to do so.</p>
    <div>
      <h4>SSL for SaaS</h4>
      <a href="#ssl-for-saas">
        
      </a>
    </div>
    <p>With <a href="https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/security/certificate-management/">SSL for SaaS</a>, customers have two options: using a default CA, meaning Cloudflare will choose the issuing authority, or specifying which CA to use.</p><p>If you’re leaving the CA choice up to Cloudflare, then we will automatically use a CA with higher device compatibility.</p><p>If you’re specifying a certain CA for your custom hostnames, then we will respect that choice. We will send an email out to SaaS providers and platforms to inform them which custom hostnames are receiving requests from legacy devices. Customers will be responsible for changing the CA to another provider, if they chose to do so.</p>
    <div>
      <h4>Custom Certificates</h4>
      <a href="#custom-certificates">
        
      </a>
    </div>
    <p>If you directly integrate with Let’s Encrypt and use <a href="https://developers.cloudflare.com/ssl/edge-certificates/custom-certificates/">Custom Certificates</a> to upload your Let’s Encrypt certs to Cloudflare then your certificates will be bundled with the cross-signed chain, as long as you choose the bundle method “<a href="https://developers.cloudflare.com/ssl/edge-certificates/custom-certificates/bundling-methodologies/#compatible">compatible</a>” or “<a href="https://developers.cloudflare.com/ssl/edge-certificates/custom-certificates/bundling-methodologies/#modern">modern</a>” and upload those certificates before September 9th, 2024. After September 9th, we will bundle all Let’s Encrypt certificates with the ISRG Root X1 chain. With the “<a href="https://developers.cloudflare.com/ssl/edge-certificates/custom-certificates/bundling-methodologies/#user-defined">user-defined</a>” bundle method, we always serve the chain that’s uploaded to Cloudflare. If you upload Let’s Encrypt certificates using this method, you will need to ensure that certificates uploaded after September 30th, 2024, the date of the CA expiration, contain the right certificate chain.</p><p>In addition, if you control the clients that are connecting to your application, we recommend updating the trust store to include the <a href="https://letsencrypt.org/certificates/#root-certificates">ISRG Root X1</a>. If you use certificate pinning, remove or update your pin. In general, we discourage all customers from pinning their certificates, as this usually leads to issues during certificate renewals or CA changes.</p>
    <div>
      <h2>Conclusion</h2>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>Internet standards will continue to evolve and improve. As we support and embrace those changes, we also need to recognize that it’s our responsibility to keep users online and to maintain Internet access in the parts of the world where new technology is not readily available. By using Cloudflare, you always have the option to choose the setup that’s best for your application.</p><p>For additional information regarding the change, please refer to our <a href="https://developers.cloudflare.com/ssl/reference/migration-guides/lets-encrypt-chain/">developer documentation</a>.</p> ]]></content:encoded>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Application Services]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[Certificate Authority]]></category>
            <category><![CDATA[Deep Dive]]></category>
            <guid isPermaLink="false">ymep6DaFvevM4m2AIdw5F</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[Upcoming Let’s Encrypt certificate chain change and impact for Cloudflare customers]]></title>
            <link>https://blog.cloudflare.com/upcoming-lets-encrypt-certificate-chain-change-and-impact-for-cloudflare-customers/</link>
            <pubDate>Thu, 14 Mar 2024 14:00:23 GMT</pubDate>
            <description><![CDATA[ Let’s Encrypt’s cross-signed chain will be expiring. To prepare for, Cloudflare will issue certs from Let’s Encrypt’s ISRG X1 chain. This change impacts legacy devices with outdated trust stores. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Let’s Encrypt, a publicly trusted certificate authority (CA) that Cloudflare uses to issue TLS certificates, has been relying on two distinct certificate chains. One is cross-signed with IdenTrust, a globally trusted CA that has been around since 2000, and the other is Let’s Encrypt’s own root CA, ISRG Root X1. Since Let’s Encrypt launched, ISRG Root X1 has been steadily gaining its own device compatibility.</p><p>On September 30, 2024, Let’s Encrypt’s certificate chain cross-signed with IdenTrust will <a href="https://letsencrypt.org/2023/07/10/cross-sign-expiration.html">expire</a>. To proactively prepare for this change, on May 15, 2024, Cloudflare will stop issuing certificates from the cross-signed chain and will instead use Let’s Encrypt’s ISRG Root X1 chain for all future Let’s Encrypt certificates.</p><p>The change in the certificate chain will impact legacy devices and systems, such as Android devices version 7.1.1 or older, as those exclusively rely on the cross-signed chain and lack the ISRG X1 root in their trust store. These clients may encounter TLS errors or warnings when accessing domains secured by a Let’s Encrypt certificate.</p><p>According to Let’s Encrypt, more than 93.9% of Android devices already trust the ISRG Root X1 and this number is expected to increase in 2024, especially as Android releases version 14, which makes the Android trust store easily and automatically upgradable.</p><p>We took a look at the data ourselves and found that, from all Android requests, 2.96% of them come from devices that will be affected by the change. In addition, only 1.13% of all requests from Firefox come from affected versions, which means that most (98.87%) of the requests coming from Android versions that are using Firefox will not be impacted.</p>
    <div>
      <h3>Preparing for the change</h3>
      <a href="#preparing-for-the-change">
        
      </a>
    </div>
    <p>If you’re worried about the change impacting your clients, there are a few things that you can do to reduce the impact of the change. If you control the clients that are connecting to your application, we recommend updating the trust store to include the <a href="https://letsencrypt.org/certificates/#root-certificates">ISRG Root X1</a>. If you use certificate pinning, remove or update your pin. In general, we discourage all customers from pinning their certificates, as this usually leads to issues during certificate renewals or CA changes.</p><p>If you experience issues with the Let’s Encrypt chain change, and you’re using <a href="https://developers.cloudflare.com/ssl/edge-certificates/advanced-certificate-manager/">Advanced Certificate Manager</a> or <a href="https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/security/certificate-management/">SSL for SaaS</a> on the Enterprise plan, you can choose to switch your certificate to use Google Trust Services as the certificate authority instead.</p><p>For more information, please refer to our <a href="https://developers.cloudflare.com/ssl/reference/migration-guides/lets-encrypt-chain/">developer documentation</a>.</p><p>While this change will impact a very small portion of clients, we support the shift that Let’s Encrypt is making as it supports a more secure and agile Internet.</p>
    <div>
      <h3>Embracing change to move towards a better Internet</h3>
      <a href="#embracing-change-to-move-towards-a-better-internet">
        
      </a>
    </div>
    <p>Looking back, there were a number of challenges that slowed down the adoption of new technologies and standards that helped make the Internet faster, more secure, and more reliable.</p><p>For starters, before Cloudflare <a href="/introducing-universal-ssl">launched Universal SSL</a>, free certificates were not attainable. Instead, domain owners had to pay around $100 to get a TLS certificate. For a <a href="https://www.cloudflare.com/small-business/">small business</a>, this is a big cost and without browsers enforcing <a href="https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/">TLS</a>, this significantly hindered TLS adoption for years. Insecure algorithms have taken decades to deprecate due to lack of support of new algorithms in browsers or devices. We learned this lesson while <a href="/sha-1-deprecation-no-browser-left-behind/">deprecating SHA-1</a>.</p><p>Supporting new security standards and protocols is vital for us to continue improving the Internet. Over the years, big and sometimes risky changes were made in order for us to move forward. The launch of Let’s Encrypt in 2015 was monumental. Let’s Encrypt allowed every domain to <a href="https://www.cloudflare.com/application-services/products/ssl/">get a TLS certificate for free</a>, which paved the way to a more secure Internet, with now <a href="https://radar.cloudflare.com/adoption-and-usage#http-vs-https">around 98%</a> of traffic using <a href="https://www.cloudflare.com/learning/ssl/what-is-https/">HTTPS</a>.</p><p>In 2014, Cloudflare launched <a href="https://www.cloudflare.com/learning/dns/dnssec/ecdsa-and-dnssec/">elliptic curve digital signature algorithm (ECDSA)</a> support for Cloudflare-issued certificates and made the decision to issue ECDSA-only certificates to free customers. This boosted ECDSA adoption by pressing clients and web operators to make changes to support the <a href="https://www.cloudflare.com/dns/dnssec/ecdsa-and-dnssec/">new algorithm</a>, which provided the same (if not better) security as RSA while also improving performance. In addition to that, modern browsers and operating systems are now being built in a way that allows them to constantly support new standards, so that they can deprecate old ones.</p><p>For us to move forward in supporting new standards and protocols, we need to make the Public Key Infrastructure (PKI) ecosystem more agile. By retiring the cross-signed chain, Let’s Encrypt is pushing devices, browsers, and clients to support adaptable trust stores. This allows clients to support new standards without causing a breaking change. It also lays the groundwork for new certificate authorities to emerge.</p><p>Today, one of the main reasons why there’s a limited number of CAs available is that it takes years for them to become widely trusted, that is, without cross-signing with another CA. In 2017, Google launched a new publicly trusted CA, <a href="https://pki.goog/">Google Trust Services</a>, that issued free TLS certificates. Even though they launched a few years after Let’s Encrypt, they faced the same challenges with device compatibility and adoption, which caused them to cross-sign with GlobalSign’s CA. We hope that, by the time GlobalSign’s CA comes up for expiration, almost all traffic is coming from a modern client and browser, meaning the change impact should be minimal.</p> ]]></content:encoded>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Developers]]></category>
            <category><![CDATA[Developer Platform]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Application Security]]></category>
            <guid isPermaLink="false">m2vQRUxG0AW4dcsV1vanp</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing per hostname TLS settings — security fit to your needs]]></title>
            <link>https://blog.cloudflare.com/introducing-per-hostname-tls-settings/</link>
            <pubDate>Wed, 09 Aug 2023 13:00:41 GMT</pubDate>
            <description><![CDATA[ Starting today, customers that use Cloudflare’s Advanced Certificate Manager can configure TLS settings on individual hostnames within a domain ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/335NNxJPBqafpqdRHUa7D6/24c8f5b2dca27353fc617c61f9f44ded/image1-6.png" />
            
            </figure><p>One of the goals of Cloudflare is to give our customers the necessary knobs to enable security in a way that fits their needs. In the realm of SSL/TLS, we offer two key controls: setting the minimum TLS version, and restricting the list of supported cipher suites. Previously, these settings applied to the entire domain, resulting in an “all or nothing” effect. While having uniform settings across the entire domain is ideal for some users, it sometimes lacks the necessary granularity for those with diverse requirements across their subdomains.</p><p>It is for that reason that we’re excited to announce that as of today, customers will be able to set their TLS settings on a per-hostname basis.</p>
    <div>
      <h3>The trade-off with using modern protocols</h3>
      <a href="#the-trade-off-with-using-modern-protocols">
        
      </a>
    </div>
    <p>In an ideal world, every domain could be updated to use the most secure and modern protocols without any setbacks. Unfortunately, that's not the case. New standards and protocols require adoption in order to be effective. TLS 1.3 was standardized by the IETF in April 2018. It removed the vulnerable cryptographic algorithms that TLS 1.2 supported and provided a performance boost by requiring only one roundtrip, as opposed to two. For a user to benefit from TLS 1.3, they need their browser or device to support the new TLS version. For modern browsers and devices, this isn’t a problem - these operating systems are built to dynamically update to support new protocols. But legacy clients and devices were, obviously, not built with the same mindset. Before 2015, new protocols and standards were developed over decades, not months or years, so the clients were shipped out with support for one standard — the one that was used at the time.</p><p>If we look at <a href="https://radar.cloudflare.com/adoption-and-usage/">Cloudflare Radar</a>, we can see that about 62.9% of traffic uses TLS 1.3. That’s quite significant for a protocol that was only standardized 5 years ago. But that also means that a significant portion of the Internet continues to use TLS 1.2 or lower.</p><p>The same trade-off applies for <a href="https://www.cloudflare.com/learning/dns/dnssec/ecdsa-and-dnssec/">digital signature algorithms</a>. ECDSA for TLS was standardized in 2006, years after RSA. It offers a higher level of security than RSA and uses shorter key lengths, which adds a performance boost for every request. To use ECDSA, a domain owner needs to obtain and serve an ECDSA certificate and the connecting client needs to support cipher suites that use elliptical curve cryptography (ECC). While most publicly trusted certificate authorities now support ECDSA-based certificates, the slow rate of adoption has led many legacy systems to only support RSA, which means that restricting applications to only support ECC-based algorithms could prevent access from those that use older clients and devices.</p>
    <div>
      <h3>Balancing the trade-offs</h3>
      <a href="#balancing-the-trade-offs">
        
      </a>
    </div>
    <p>When it comes to security and accessibility, it’s important to find the right middle ground for your business.</p><p>To maintain brand, most companies deploy all of their assets under one domain. It’s common for the root domain (e.g. example.com) to be used as a marketing website to provide information about the company, its mission, and the products and services it offers. Then, under the same domain, you might have your company blog (e.g. blog.example.com), your management portal (e.g. dash.example.com), and your <a href="https://www.cloudflare.com/application-services/products/api-gateway/">API gateway</a> (e.g. api.example.com).</p><p>The marketing website and the blog are similar in that they’re static sites that don’t collect information from the accessing users. On the other hand, the management portal and API gateway collect and present sensitive data that needs to be protected.</p><p>When you’re thinking about which settings to deploy, you want to consider the data that’s exchanged and the user base. The marketing website and blog should be accessible to all users. You can set them up to support modern protocols for the clients that support them, but you don’t necessarily want to restrict access for users that are accessing these pages from old devices.</p><p>The management portal and API gateway should be set up in a manner that provides the best protection for the data exchanged. That means dropping support for less secure standards with known vulnerabilities and requiring new, secure protocols to be used.</p><p>To be able to achieve this setup, you need to be able to configure settings for every subdomain within your domain individually.</p>
    <div>
      <h3>Per hostname TLS settings - now available!</h3>
      <a href="#per-hostname-tls-settings-now-available">
        
      </a>
    </div>
    <p>Customers that use Cloudflare’s Advanced Certificate Manager can configure TLS settings on individual hostnames within a domain. Customers can use this to enable HTTP/2, or to configure the minimum TLS version and the supported ciphers suites on a particular hostname. Any settings that are applied on a specific hostname will supersede the zone level setting. The new capability also allows you to have different settings on a hostname and its wildcard record; which means you can configure example.com to use one setting, and *.example.com to use another.</p><p>Let’s say that you want the default min TLS version for your domain to be TLS 1.2, but for your dashboard and API subdomains, you want to set the minimum TLS version to be TLS 1.3. In the Cloudflare dashboard, you can set the zone level minimum TLS version to 1.2 as shown below. Then, to make the minimum TLS version for the dashboard and API subdomains TLS 1.3, make a call to the per-hostname TLS settings <a href="https://developers.cloudflare.com/api/operations/per-hostname-tls-settings-put">API endpoint</a> with the specific hostname and setting.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2dKeWGy6efhlXffUsYRPRN/49865908b6ef64bfbf77c453eca68d41/Untitled.png" />
            
            </figure><p>This is all available, starting today, through the <a href="https://developers.cloudflare.com/api/operations/per-hostname-tls-settings-put">API endpoint</a>! And if you’d like to learn more about how to use our per-hostname TLS settings, please jump on over to our <a href="https://developers.cloudflare.com/ssl/edge-certificates/additional-options/minimum-tls/">developer documentation</a>.</p> ]]></content:encoded>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Product News]]></category>
            <guid isPermaLink="false">5Ur3aAZPj8DIsf4qnHteG8</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[Bring your own CA for client certificate validation with API Shield]]></title>
            <link>https://blog.cloudflare.com/bring-your-own-ca-for-client-certificate-validation-with-api-shield/</link>
            <pubDate>Tue, 11 Jul 2023 13:00:21 GMT</pubDate>
            <description><![CDATA[ API shield customers can now upload their own CA to use for client certificate validation. This ensures that only authorized clients and devices can make requests to your API endpoint or application.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p><a href="https://www.cloudflare.com/learning/security/api/what-is-an-api/">APIs</a> account for more than half of the total traffic of the Internet. They are the building blocks of many modern web applications. As API usage grows, so does the number of <a href="https://www.cloudflare.com/learning/insights-waap-api-security/">API attacks</a>. And so now, more than ever, it’s important to keep these API endpoints secure. Cloudflare’s API Shield solution offers a comprehensive suite of products to safeguard your API endpoints and now we’re excited to give our customers one more tool to keep their endpoints safe. We’re excited to announce that customers can now bring their own Certificate Authority (CA) to use for mutual TLS client authentication. This gives customers more security, while allowing them to maintain control around their Mutual TLS configuration.</p>
    <div>
      <h3>The power of Mutual TLS (mTLS)</h3>
      <a href="#the-power-of-mutual-tls-mtls">
        
      </a>
    </div>
    <p>Traditionally, when we refer to <a href="https://www.cloudflare.com/application-services/products/ssl/">TLS certificates</a>, we talk about the publicly trusted certificates that are presented by servers to prove their identity to the connecting client. With Mutual TLS, both the client and the server present a certificate to establish a two-way channel of trust. Doing this allows the server to check who the connecting client is and whether or not they’re allowed to make a request. The certificate presented by the client - the client certificate - doesn’t need to come from a publicly trusted CA. In fact, it usually comes from a private or self-signed CA. That’s because the only party that needs to be able to trust it is the connecting server. As long as the connecting server has the client certificate and can check its validity, it doesn’t need to be public.</p>
    <div>
      <h3>Securing API endpoints with Mutual TLS</h3>
      <a href="#securing-api-endpoints-with-mutual-tls">
        
      </a>
    </div>
    <p>Mutual TLS plays a crucial role in protecting API endpoints. When it comes to safeguarding these endpoints, it's important to have a security model in place that only allows authorized clients to make requests and keeps everyone else out.</p><p>That’s why when we launched API Shield in 2020 - a product that’s centered around securing API endpoints - we included mutual TLS client certificate validation as a part of the offering. We knew that mTLS was the best way for our customers to identify and authorize their connecting clients.</p><p>When we launched mutual TLS for API Shield, we gave each of our customers a dedicated self-signed CA that they could use to issue client certificates. Once the certificates are installed on devices and mTLS is set up, administrators can enforce that connections can only be made if they present a client certificate issued from that self-signed CA.</p><p>This feature has been paramount in securing thousands of endpoints, but it does require our customer to install new client certificates on their devices, which isn’t always possible. Some customers have been using mutual TLS for years with their own CA, which means that the client certificates are already in the wild. Unless the application owner has direct control over the clients, it’s usually arduous, if not impossible, to replace the client certificates with ones issued from Cloudflare’s CA. Other customers may be required to use a CA issued from an approved third party in order to meet regulatory requirements.</p><p>To help all of our customers keep their endpoints secure, we’re extending API Shield’s mTLS capability to allow customers to bring their own CA.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1r7GjCcka2i39OMoxNMQvy/250261c4cdae4a84d9f09f6479893748/image2-3.png" />
            
            </figure>
    <div>
      <h3>Get started today</h3>
      <a href="#get-started-today">
        
      </a>
    </div>
    <p>To simplify the management of private PKI at Cloudflare, we created one account level endpoint that enables customers to upload self-signed CAs to use across different Cloudflare products. Today, this endpoint can be used for API shield CAs and for <a href="/bring-your-certificates-cloudflare-gateway/">Gateway</a> CAs that are used for traffic inspection.</p><p>If you’re an Enterprise customer, you can upload up to five CAs to your account. Once you’ve uploaded the CA, you can use the API Shield hostname association API to associate the CA with the mTLS enabled hostnames. That will tell Cloudflare to start validating the client certificate against the uploaded CA for requests that come in on that hostname. Before you enforce the client certificate validation, you can create a Firewall rule that logs an event when a valid or invalid certificate is served. That will help you determine if you’ve set things up correctly before you enforce the client certificate validation and drop unauthorized requests.</p><p>To learn more about how you can use this, refer to our <a href="https://developers.cloudflare.com/ssl/client-certificates/byo-ca-api-shield/">developer documentation</a>.</p><p>If you’re interested in using mutual TLS to secure your corporate network, talk to an account representative about using our Access product to do so.</p> ]]></content:encoded>
            <category><![CDATA[API Shield]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[API Security]]></category>
            <guid isPermaLink="false">1TRKVmXwQ3GahPiC428E89</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[A new, configurable and scalable version of Geo Key Manager, now available in Closed Beta]]></title>
            <link>https://blog.cloudflare.com/configurable-and-scalable-geo-key-manager-closed-beta/</link>
            <pubDate>Thu, 15 Dec 2022 14:00:00 GMT</pubDate>
            <description><![CDATA[ We’re excited to announce a new version of Geo Key Manager — one that allows customers to define boundaries by country, by a region, or by a standard, such as “only store my private keys in FIPS compliant data centers” — now available in Closed Beta. ]]></description>
            <content:encoded><![CDATA[ <p><i></i></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5MaRNMB7y16ivTdqoGenT8/140190c6e91d3de30cd51f728b4d852a/image2-35.png" />
            
            </figure><p>Today, traffic on the Internet stays encrypted through the use of public and private keys that encrypt the data as it's being transmitted. Cloudflare helps secure millions of websites by managing the encryption keys that keep this data protected. To provide lightning fast services, Cloudflare stores these keys on our fleet of data centers that spans more than 150 countries. However, some compliance regulations require that private keys are only stored in specific geographic locations.</p><p>In 2017, we <a href="/introducing-cloudflare-geo-key-manager/">introduced</a> Geo Key Manager, a product that allows customers to store and manage the encryption keys for their domains in different geographic locations so that compliance regulations are met and that data remains secure. We launched the product a few months before General Data Protection Regulation (GDPR) went into effect and built it to support three regions: the US, the European Union (EU), and a set of our top tier data centers that employ the highest security measures. Since then, GDPR-like laws have quickly expanded and now, more than 15 countries have comparable data protection laws or regulations that include restrictions on data transfer across and/or data localization within a certain boundary.</p><p>At Cloudflare, we like to be prepared for the future. We want to give our customers tools that allow them to maintain compliance in this ever-changing environment. That’s why we’re excited to announce a new version of Geo Key Manager — one that allows customers to define boundaries by country, ”only store my private keys in India”, by a region ”only store my private keys in the European Union”, or by a standard, such as “only store my private keys in FIPS compliant data centers” — now available in Closed Beta, sign up <a href="https://www.cloudflare.com/lp/geo-key-manager/">here</a>!</p>
    <div>
      <h3>Learnings from Geo Key Manager v1</h3>
      <a href="#learnings-from-geo-key-manager-v1">
        
      </a>
    </div>
    <p>Geo Key Manager has been around for a few years now, and we’ve used this time to gather feedback from our customers. As the demand for a more flexible system grew, we decided to go back to the drawing board and create a new version of Geo Key Manager that would better meet our customers’ needs.</p><p>We initially launched Geo Key Manager with support for US, EU, and Highest Security Data centers. Those regions were sufficient at the time, but customers wrestling with data localization obligations in other jurisdictions need more flexibility when it comes to selecting countries and regions. Some customers want to be able to set restrictions to maintain their private keys in one country, some want the keys stored everywhere except in certain countries, and some may want to mix and match rules and say “store them in X and Y, but not in Z”. What we learned from our customers is that they need flexibility, something that will allow them to keep up with the ever-changing rules and policies — and that’s what we set out to build out.</p><p>The next issue we faced was scalability.  When we built the initial regions, we included a hard-coded list of data centers that met our criteria for the US, EU, “high security” data center regions.  However, this list was static because the underlying cryptography did not support dynamic changes to our list of data centers. In order to distribute private keys to new data centers that met our criteria, we would have had to completely overhaul the system. In addition to that, our network significantly expands every year, with more than 100 new data centers since the initial launch. That means that any new potential locations that could be used to store private keys are currently not in use, degrading the performance and reliability of customers using this feature.</p><p>With our current scale, automation and expansion is a must-have. Our new system needs to dynamically scale every time we onboard or remove a data center from our Network, without any human intervention or large overhaul.</p><p>Finally, one of our biggest learnings was that customers make mistakes, such as defining a region that’s so small that availability becomes a concern. Our job is to prevent our customers from making changes that we know will negatively impact them.</p>
    <div>
      <h3>Define your own geo-restrictions with the new version of Geo Key Manager</h3>
      <a href="#define-your-own-geo-restrictions-with-the-new-version-of-geo-key-manager">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/32wIGpiYX9XBNE6IqIo4qW/53a0340bfbd4c175a1ced8177df8cdfe/image3-21.png" />
            
            </figure><p>Cloudflare has significantly grown in the last few years and so has our international customer base. Customers need to keep their traffic regionalized. This region can be as broad as a continent — Asia, for example. Or, it can be a specific country, like Japan.</p><p>From our conversations with our customers, we’ve heard that they want to be able to define these regions themselves. This is why today we’re excited to announce that customers will be able to use Geo Key Manager to create what we call “policies”.</p><p>A policy can be a single country, defined by two-letter (ISO 3166) country code. It can be a region, such as “EU” for the European Union or Oceania. It can be a mix and match of the two, “country:US or region: EU”.</p><p>Our new policy based Geo Key Manager allows you to create allowlist or blocklists of countries and supported regions, giving you control over the boundary in which your private key will be stored. If you’d like to store your private keys globally and omit a few countries, you can do that.</p><p>If you would like to store your private keys in the EU and US, you would make the following <a href="https://api.cloudflare.com/#custom-ssl-for-a-zone-create-ssl-configuration">API</a> call:</p>
            <pre><code>curl -X POST "https://api.cloudflare.com/client/v4/zones/zone_id/custom_certificates" \
     -H "X-Auth-Email: user@example.com" \
     -H "X-Auth-Key: auth-key" \
     -H "Content-Type: application/json" \
     --data '{"certificate":"certificate","private_key":"private_key","policy":"(country: US) or (region: EU)", "type": "sni_custom"}'</code></pre>
            <p>If you would like to store your private keys in the EU, but not in France, here is how you can define that:</p>
            <pre><code>curl -X POST "https://api.cloudflare.com/client/v4/zones/zone_id/custom_certificates" \
     -H "X-Auth-Email: user@example.com" \
     -H "X-Auth-Key: auth-key" \
     -H "Content-Type: application/json" \
     --data '{"certificate":"certificate","private_key":"private_key","policy": "region: EU and (not country: FR)", "type": "sni_custom"}'</code></pre>
            <p>Geo Key Manager can now support more than 30 countries and regions. But that’s not all! The superpower of our Geo Key Manager technology is that it doesn’t actually have to be “geo” based, but instead, it’s attribute based. In the future, we’ll have a policy that will allow our customers to define where their private keys are stored based on a compliance standard like <a href="https://www.cloudflare.com/learning/privacy/what-is-fedramp/">FedRAMP</a> or ISO 27001.</p>
    <div>
      <h3>Reliability, resiliency, and redundancy</h3>
      <a href="#reliability-resiliency-and-redundancy">
        
      </a>
    </div>
    <p>By giving our customers the remote control for Geo Key Manager, we want to make sure that customers understand the impact of their changes on both redundancy and latency.</p><p>On the redundancy side, one of our biggest concerns is allowing customers to choose a region small enough that if a data center is removed for maintenance, for example, then availability is drastically impacted. To protect our customers, we’ve added redundancy restrictions. These prevent our customers from setting regions with too few data centers, ensuring that all the data centers within a policy can offer high availability and redundancy.</p><p>Not just that, but in the last few years, we’ve significantly improved the underlying networking that powers Geo Key Manager. For more information on how we did that, keep an eye out for a technical deep dive inside Geo Key Manager.</p>
    <div>
      <h3>Performance matters</h3>
      <a href="#performance-matters">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/77nOyNlNPEyaWkHPZ1xfpM/aac3e0d99f380dbc97d244f99d89aeec/image1-39.png" />
            
            </figure><p>With the original regions (US, EU, and Highest Security Data Centers), we learned customers may overlook possible latency impacts that occur when defining the key manager to a certain region. Imagine your keys are stored in the US. For your Asia-based customers, there’s going to be some latency impact for the requests that go around the world. Now, with customers being able to define more granular regions, we want to make sure that before customers make that change, they see the impact of it.</p><p>If you’re an <a href="https://www.cloudflare.com/ecommerce/">E-Commerce platform</a> then <a href="https://www.cloudflare.com/solutions/ecommerce/optimization/">performance</a> is always top-of-mind. One thing that we’re working on right now is performance metrics for Geo Key Manager policies both from a regional point of view — “what’s the latency impact for Asia based customers?” and from a global point of view — “for anyone in the world, what is the average impact of this policy?”.</p><p>By seeing the latency impact, if you see that the impact is unacceptable, you may want to create a separate domain for your service that’s specific to the region that it’s serving.</p>
    <div>
      <h3>Closed Beta, now available!</h3>
      <a href="#closed-beta-now-available">
        
      </a>
    </div>
    <p>Interested in trying out the latest version of Geo Key Manager? Fill out this <a href="https://www.cloudflare.com/lp/geo-key-manager/">form</a>.</p>
    <div>
      <h3>Coming soon!</h3>
      <a href="#coming-soon">
        
      </a>
    </div>
    <p>Geo Key Manager is only available via API at the moment. But, we are working on creating an easy-to-use UI for it, so that customers can easily manage their policies and regions. In addition, we’ll surface performance measurements and warnings when we see any degraded impact in terms of performance or redundancy to ensure that customers are mindful when setting policies.</p><p>We’re also excited to extend our Geo Key Manager product beyond custom uploaded certificates. In the future, certificates issued through Advanced Certificate Manager or <a href="https://www.cloudflare.com/application-services/products/ssl-for-saas-providers/">SSL for SaaS</a> will be allowed to add policy based restrictions for the key storage.</p><p>Finally, we’re looking to add more default regions to make the selection process simple for our customers. If you have any regions that you’d like us to support, or just general feedback or feature requests related to Geo Key Manager, make a note of it on the <a href="https://www.cloudflare.com/lp/geo-key-manager/">form</a>. We love hearing from our customers!</p> ]]></content:encoded>
            <category><![CDATA[Impact Week]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Regional Services]]></category>
            <category><![CDATA[Geo Key Manager]]></category>
            <guid isPermaLink="false">2OgNkneECLDxlFcB0j9my4</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[Total TLS: one-click TLS for every hostname you have]]></title>
            <link>https://blog.cloudflare.com/total-tls-one-click-tls-for-every-hostname/</link>
            <pubDate>Thu, 06 Oct 2022 18:00:00 GMT</pubDate>
            <description><![CDATA[ Today, we’re excited to announce Total TLS — a one-click feature that will issue individual TLS certificates for every subdomain in our customer’s domains ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Today, we’re excited to announce Total TLS — a one-click feature that will issue individual TLS certificates for every subdomain in our customer’s domains.</p><p>By default, all Cloudflare customers get a free, TLS certificate that covers the apex and wildcard (example.com, *.example.com) of their domain. Now, with Total TLS, customers can get additional coverage for all of their subdomains with just one-click! Once enabled, customers will no longer have to worry about insecure connection errors to subdomains not covered by their default TLS certificate because Total TLS will keep all the traffic bound to the subdomains encrypted.</p>
    <div>
      <h2>A primer on Cloudflare’s TLS certificate offerings</h2>
      <a href="#a-primer-on-cloudflares-tls-certificate-offerings">
        
      </a>
    </div>
    
    <div>
      <h3>Universal SSL — the “easy” option</h3>
      <a href="#universal-ssl-the-easy-option">
        
      </a>
    </div>
    <p>In 2014, we announced <a href="/introducing-universal-ssl/">Universal SSL</a> — a <a href="https://www.cloudflare.com/application-services/products/ssl/">free TLS certificate</a> for every Cloudflare customer. Universal SSL was built to be a simple “one-size-fits-all” solution. For customers that use Cloudflare as their authoritative DNS provider, this certificate covers the apex and a wildcard e.g. example.com and *.example.com. While a Universal SSL certificate provides sufficient coverage for most, some customers have deeper subdomains like a.b.example.com for which they’d like TLS coverage. For those customers, we built Advanced Certificate Manager — a customizable platform for certificate issuance that allows customers to issue certificates with the hostnames of their choice.</p>
    <div>
      <h3>Advanced certificates — the “customizable” option</h3>
      <a href="#advanced-certificates-the-customizable-option">
        
      </a>
    </div>
    <p>For customers that want flexibility and choice, we build Advanced certificates which are available as a part of <a href="/advanced-certificate-manager/">Advanced Certificate Manager</a>. With Advanced certificates, customers can specify the exact hostnames that will be included on the certificate.</p><p>That means that if my Universal SSL certificate is insufficient, I can use the Advanced certificates UI or API to request a certificate that covers “a.b.example.com” and “a.b.c.example.com”. Today, we allow customers to place up to 50 hostnames on an Advanced certificate. The only caveat — customers have to tell us which hostnames to protect.</p><p>This may seem trivial, but some of our customers have thousands of subdomains that they want to <a href="https://www.cloudflare.com/application-services/solutions/domain-protection-services/">keep protected</a>. We have customers with subdomains that range from a.b.example.com to a.b.c.d.e.f.example.com and for those to be covered, customers have to use the Advanced certificates <a href="https://api.cloudflare.com/#certificate-packs-order-advanced-certificate-manager-certificate-pack">API</a> to tell us the hostname that they’d like us to protect. A process like this is error-prone, not easy to scale, and has been rejected as a solution by some of our largest customers.</p><p>Instead, customers want Cloudflare to issue the certificates for them. If Cloudflare is the DNS provider then Cloudflare should know what subdomains need protection. Ideally, Cloudflare would issue a TLS certificate for every subdomain that’s proxying its traffic through the Cloudflare Network… and that’s where Total TLS comes in.</p>
    <div>
      <h2>Enter Total TLS: easy, customizable, and scalable</h2>
      <a href="#enter-total-tls-easy-customizable-and-scalable">
        
      </a>
    </div>
    <p>Total TLS is a one-click button that signals Cloudflare to automatically issue TLS certificates for every proxied DNS record in your domain. Once enabled, Cloudflare will issue individual certificates for every proxied hostname. This way, you can add as many DNS records and subdomains as you need to, without worrying about whether they’ll be covered by a TLS certificate.</p><p>If you have a DNS record for a.b.example.com, we’ll issue a TLS certificate with the hostname a.b.example.com. If you have a wildcard record for *.a.b.example.com then we’ll issue a TLS certificate for “*.a.b.example.com”. Here’s an example of what this will look like in the Edge Certificates table of the dashboard:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5orvWZD4F1Qu1ekoHIuFch/b67ba45b1efbf4c75e674593ff23b478/image2-6.png" />
            
            </figure>
    <div>
      <h2>Available now</h2>
      <a href="#available-now">
        
      </a>
    </div>
    <p>Total TLS is now available to use as a part of Advanced Certificate Manager for domains that use Cloudflare as an Authoritative DNS provider. One of the superpowers of having Cloudflare as your DNS provider is that we’ll always add the proper Domain Control Validation (DCV) records on your behalf to ensure successful certificate issuance and renewal.</p><p>Enabling Total TLS is easy — you can do it through the Cloudflare dashboard or via <a href="https://api.cloudflare.com/#total-tls-enable-or-disable-total-tls">API</a>. In the SSL/TLS tab of the Cloudflare dashboard, navigate to Total TLS. There, choose the issuing CA — Let’s Encrypt, Google Trust Services, or No Preference, if you’d like Cloudflare to select the CA on your behalf then click on the toggle to enable the feature.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4GA2uiIYneXvEc4C09GtGe/e779432573a819444c7493ecad4487cf/image4-1.png" />
            
            </figure>
    <div>
      <h2>But that’s not all…</h2>
      <a href="#but-thats-not-all">
        
      </a>
    </div>
    <p>One pain point that we wanted to address for all customers was visibility. From looking at support tickets and talking to customers, one of the things that we realized was that customers don’t always know whether their domain is covered by a TLS certificate —  a simple oversight that can result in downtime or errors.</p><p>To prevent this from happening, we are now going to warn every customer if we see that the proxied DNS record that they’re creating, viewing, or editing doesn’t have a TLS certificate covering it. This way, our customers can get a TLS certificate issued before the hostname becomes publicly available, preventing visitors from encountering this error:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/17OAtnH4osT3t91MeJaHUB/bc0dee60dcc9c17a8b1786b5ec6d9671/image3-2.png" />
            
            </figure>
    <div>
      <h2>Join the mission</h2>
      <a href="#join-the-mission">
        
      </a>
    </div>
    <p>At Cloudflare, we love building products that help secure all Internet properties. Interested in achieving this mission with us? <a href="https://www.cloudflare.com/careers/jobs/">Join the team</a>!</p> ]]></content:encoded>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Advanced Certificate Manager]]></category>
            <guid isPermaLink="false">3u0rb4HzoGD9cOz1Kix4f9</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing new Cloudflare for SaaS documentation]]></title>
            <link>https://blog.cloudflare.com/introducing-new-cloudflare-for-saas-documentation/</link>
            <pubDate>Tue, 09 Aug 2022 13:00:00 GMT</pubDate>
            <description><![CDATA[ Cloudflare for SaaS offers a suite of Cloudflare products and add-ons to improve the security, performance, and reliability of SaaS providers. Now, the Cloudflare for SaaS documentation outlines how to optimize it in order to meet your goals ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2i5rqkqFn7HJrwk36od0pM/df3914b54964a9d678cda9ab0fe97968/image3-4.png" />
            
            </figure><p>As a SaaS provider, you’re juggling many challenges while building your application, whether it’s custom domain support, protection from attacks, or maintaining an origin server. In 2021, we were proud to announce <a href="/cloudflare-for-saas/">Cloudflare for SaaS for Everyone</a>, which allows anyone to use Cloudflare to cover those challenges, so they can focus on other aspects of their business. This product has a variety of potential implementations; now, we are excited to announce a new section in our <a href="https://developers.cloudflare.com/">Developer Docs</a> specifically devoted to <a href="https://developers.cloudflare.com/cloudflare-for-saas/">Cloudflare for SaaS documentation</a> to allow you take full advantage of its product suite.</p>
    <div>
      <h3>Cloudflare for SaaS solution</h3>
      <a href="#cloudflare-for-saas-solution">
        
      </a>
    </div>
    <p>You may remember, from our <a href="/cloudflare-for-saas-for-all-now-generally-available/">October 2021 blog post</a>, all the ways that Cloudflare provides solutions for SaaS providers:</p><ul><li><p>Set up an origin server</p></li><li><p>Encrypt your customers’ traffic</p></li><li><p>Keep your customers online</p></li><li><p>Boost the performance of global customers</p></li><li><p>Support custom domains</p></li><li><p>Protect against attacks and bots</p></li><li><p>Scale for growth</p></li><li><p>Provide insights and analytics</p></li></ul>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7LdxDeVHaUHAy19wdbLfVe/aaec3c62c1616d393a8af6c6daf270d0/image2-5.png" />
            
            </figure><p>However, we received feedback from customers indicating confusion around actually <i>using</i> the capabilities of Cloudflare for SaaS because there are so many features! With the existing documentation, it wasn’t 100% clear how to enhance security and performance, or how to support custom domains. Now, we want to show customers how to use Cloudflare for SaaS to its full potential by including more product integrations in the docs, as opposed to only focusing on the SSL/TLS piece.</p>
    <div>
      <h3>Bridging the gap</h3>
      <a href="#bridging-the-gap">
        
      </a>
    </div>
    <p>Cloudflare for SaaS can be overwhelming with so many possible add-ons and configurations. That’s why the new docs are organized into six main categories, housing a number of new, detailed guides (for example, WAF for SaaS and Regional Services for SaaS):</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5oI4ffuIoR47X455bljT6c/15422c36a5f9313c1113282577d913f2/image1-12.png" />
            
            </figure><p>Once you get your SaaS application up and running with the <a href="https://developers.cloudflare.com/cloudflare-for-saas/getting-started/">Get Started</a> page, you can find which configurations are best suited to your needs based on your priorities as a provider. Even if you aren’t sure what your goals are, this setup outlines the possibilities much more clearly through a number of new documents and product guides such as:</p><ul><li><p><a href="https://developers.cloudflare.com/cloudflare-for-saas/start/advanced-settings/regional-services-for-saas/">Regional Services for SaaS</a></p></li><li><p><a href="https://developers.cloudflare.com/analytics/graphql-api/tutorials/end-customer-analytics/">Querying HTTP events by hostname with GraphQL</a></p></li><li><p><a href="https://developers.cloudflare.com/cloudflare-for-saas/domain-support/migrating-custom-hostnames/">Migrating custom hostnames</a></p></li></ul><p>Instead of pondering over vague subsection titles, you can peruse with purpose in mind. The advantages and possibilities of Cloudflare for SaaS are highlighted instead of hidden.</p>
    <div>
      <h3>Possible configurations</h3>
      <a href="#possible-configurations">
        
      </a>
    </div>
    <p>This setup facilitates configurations much more easily to meet your goals as a SaaS provider.</p><p>For example, consider performance. Previously, there was no documentation surrounding reduced latency for SaaS providers. Now, the Performance section explains the automatic benefits to your performance by onboarding with Cloudflare for SaaS. Additionally, it offers three options of how to reduce latency even further through brand-new docs:</p><ul><li><p><a href="https://developers.cloudflare.com/cloudflare-for-saas/performance/early-hints-for-saas/">Early Hints for SaaS</a></p></li><li><p><a href="https://developers.cloudflare.com/cloudflare-for-saas/performance/cache-for-saas/">Cache for SaaS</a></p></li><li><p><a href="https://developers.cloudflare.com/cloudflare-for-saas/performance/argo-for-saas/">Argo Smart Routing for SaaS</a></p></li></ul><p>Similarly, the new organization offers <a href="https://developers.cloudflare.com/cloudflare-for-saas/security/waf-for-saas/">WAF for SaaS</a> as a previously hidden security solution, extending providers the ability to enable automatic protection from vulnerabilities and the flexibility to create custom rules. This is conveniently accompanied by a <a href="https://developers.cloudflare.com/cloudflare-for-saas/security/waf-for-saas/managed-rulesets/">step-by-step tutorial using Cloudflare Managed Rulesets</a>.</p>
    <div>
      <h3>What’s next</h3>
      <a href="#whats-next">
        
      </a>
    </div>
    <p>While this transition represents an improvement in the Cloudflare for SaaS docs, we’re going to expand its accessibility even more. Some tutorials, such as our <a href="https://developers.cloudflare.com/cloudflare-for-saas/security/waf-for-saas/managed-rulesets/">Managed Ruleset Tutorial</a>, are already live within the tile. However, more step-by-step guides for Cloudflare for SaaS products and add-ons will further enable our customers to take full advantage of the available product suite. In particular, keep an eye out for expanding documentation around using Workers for Platforms.</p>
    <div>
      <h3>Check it out</h3>
      <a href="#check-it-out">
        
      </a>
    </div>
    <p>Visit the new <a href="http://www.developers.cloudflare.com/cloudflare-for-saas">Cloudflare for SaaS tile</a> to see the updates. If you are a SaaS provider interested in extending Cloudflare benefits to your customers through Cloudflare for SaaS, visit our <a href="https://www.cloudflare.com/saas/">Cloudflare for SaaS overview</a> and our <a href="https://developers.cloudflare.com/cloudflare-for-saas/plans/">Plans page</a>.</p> ]]></content:encoded>
            <category><![CDATA[Technical Writing]]></category>
            <category><![CDATA[Developer Documentation]]></category>
            <category><![CDATA[Cloudflare for SaaS]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[SaaS]]></category>
            <category><![CDATA[Internship Experience]]></category>
            <guid isPermaLink="false">7cA2oDJgFIx7vyQyTY5Bk8</guid>
            <dc:creator>Mia Malden</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing: Backup Certificates]]></title>
            <link>https://blog.cloudflare.com/introducing-backup-certificates/</link>
            <pubDate>Mon, 14 Mar 2022 12:59:10 GMT</pubDate>
            <description><![CDATA[ We are excited to introduce backup certificates to increase reliability of our service for anyone using the Cloudflare platform in the event of key compromises or related issues ]]></description>
            <content:encoded><![CDATA[ <p>At Cloudflare, we pride ourselves in giving every customer the ability to provision a <a href="https://www.cloudflare.com/application-services/products/ssl/">TLS certificate</a> for their Internet application — for free. Today, we are responsible for managing the <a href="https://www.cloudflare.com/application-services/solutions/certificate-lifecycle-management/">certificate lifecycle</a> for almost 45 million certificates from issuance to deployment to renewal. As we build out the most resilient, robust platform, we want it to be “future-proof” and resilient against events we can’t predict.</p><p>Events that cause us to re-issue certificates for our customers, like key compromises, vulnerabilities, and mass revocations require immediate action. Otherwise, customers can be left insecure or offline. When one of these events happens, we want to be ready to mitigate impact immediately. But how?</p><p>By having a backup certificate ready to deploy — wrapped with a different private key and issued from a different Certificate Authority than the primary certificate that we serve.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5BPFZ0ih533y6PbZlPio6y/4cbeebb8958714b88a4415392053dcfb/image1-header-1.png" />
            
            </figure>
    <div>
      <h2>Events that lead to certificate re-issuance</h2>
      <a href="#events-that-lead-to-certificate-re-issuance">
        
      </a>
    </div>
    <p>Cloudflare re-issues certificates every day — we call this a certificate renewal. Because certificates come with an expiration date, when Cloudflare sees that a certificate is expiring soon, we initiate a new certificate renewal order. This way, by the time the certificate expires, we already have an updated certificate deployed and ready to use for TLS termination.</p><p>Unfortunately, not all certificate renewals are initiated by the expiration date. Sometimes, unforeseeable events like key compromises can lead to certificate renewals. This is because a new key needs to be issued, and therefore a corresponding certificate does as well.</p>
    <div>
      <h3>Key Compromises</h3>
      <a href="#key-compromises">
        
      </a>
    </div>
    <p>A key compromise is when an unauthorized person or system obtains the private key that is used to encrypt and decrypt secret information — security personnel’s worst nightmare. Key compromises can be the result of a vulnerability, such as Heartbleed, where a bug in a system can cause the private key to be leaked. They can also be the result of malicious actions, such as a rogue employee accessing unauthorized information. In the event of a key compromise, it's crucial that (1) new private keys are immediately issued, (2) new certificates are deployed, and (3) the old certificates are revoked.</p>
    <div>
      <h3>The Heartbleed Vulnerability</h3>
      <a href="#the-heartbleed-vulnerability">
        
      </a>
    </div>
    <p>In 2014, the <a href="/the-heartbleed-aftermath-all-cloudflare-certificates-revoked-and-reissued/">Heartbleed vulnerability</a> was exposed. It allowed attackers to extract the TLS certificate private key for any server that was running the affected version of OpenSSL, a popular encryption library. We <a href="/staying-ahead-of-openssl-vulnerabilities/">patched the bug</a> and then as a precaution, quickly reissued private keys and TLS certificates belonging to all of our customers, even though none of our keys were leaked. Cloudflare’s ability to act quickly protected our customers’ data from being exposed.</p><p>Heartbleed was a wake-up call. At the time, Cloudflare’s scale was a magnitude smaller. A similar vulnerability at today’s scale would take us weeks, not hours to re-issue all of our customers certificates.</p><p>Now, with backup certificates, we don’t need to worry about initiating a mass re-issuance in a small time frame. Instead, customers will already have a certificate that we’ll be able to instantly deploy. Not just that, but the backup certificate will also be wrapped with a different key than the primary certificate, preventing it from being impacted by a key compromise.</p><p>Key compromises are one of the main reasons certificates need to be re-issued at scale. But other events can prompt re-issuance as well, including mass revocations by Certificate Authorities.</p>
    <div>
      <h3>Mass Revocations from CAs</h3>
      <a href="#mass-revocations-from-cas">
        
      </a>
    </div>
    <p>Today, the Certificate Authority/Browser Forum (CA/B Forum) is the governing body that sets the rules and standards for certificates. One of the <a href="https://cabforum.org/wp-content/uploads/CA-Browser-Forum-BR-1.8.1.pdf">Baseline Requirements</a> set by the CA/B Forum states that Certificate Authorities are required to revoke certificates whose keys are at risk of being compromised within 24 hours. For less immediate issues, such as certificate misuse or violation of a CA’s Certificate Policy, certificates need to be revoked within <a href="https://cabforum.org/2018/09/14/ballot-sc6-revocation-timeline-extension/">five days</a>. In both scenarios, certificates will be revoked by the CA in a short timeframe and immediate re-issuance of certificates is required.</p><p>While mass revocations aren’t commonly initiated by CAs, there have been a few occurrences throughout the last few years. Recently, Let’s Encrypt had to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1751984#c20">revoke</a> roughly 2.7 million certificates when they found a non-compliance in their implementation of a DCV challenge. In this case, Cloudflare customers were unaffected.</p><p>Another time, one of the Certificate Authorities that we use found that they were <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1714628">renewing certificates based on validation tokens</a> that did not comply with the CA/B Forum standards. This caused them to invoke a mass revocation, impacting about five thousand Cloudflare-managed domains. We worked with our customers and the CA to issue new certificates before the revocation, resulting in minimal impact.</p><p>We understand that mistakes happen, and we have been lucky enough that as these issues have come up, our engineering teams were able to mitigate quickly so that no customers were impacted. But that’s not enough: our systems need to be future-proof so that a revocation of 45 million certificates will have no impact on our customers. With backup certificates, we’ll be ready for a mass re-issuance, no matter the scale.</p><p>To be resilient against mass revocations initiated by our CAs, we are going to issue every backup certificate from a different CA than the primary certificate. This will add a layer of protection if one of our CAs will have to invoke a mass revocation — something that when initiated, is a ticking time bomb.</p>
    <div>
      <h2>Challenges when Renewing Certificates</h2>
      <a href="#challenges-when-renewing-certificates">
        
      </a>
    </div>
    
    <div>
      <h3>Scale: With great power, comes great responsibility</h3>
      <a href="#scale-with-great-power-comes-great-responsibility">
        
      </a>
    </div>
    <p>When the Heartbleed vulnerability was exposed, we had to re-issue about 100,000 certificates. At the time, this wasn’t a challenge for Cloudflare. Now, we are responsible for tens of millions of certificates. Even if our systems are able to handle this scale, we rely on our Certificate Authority partners to be able to handle it as well. In the case of an emergency, we don’t want to rely on systems that we do not control. That’s why it’s important for us to issue the certificates ahead of time, so that during a disaster, all we need to worry about is getting the backup certificates deployed.</p>
    <div>
      <h3>Manual intervention for completing DCV</h3>
      <a href="#manual-intervention-for-completing-dcv">
        
      </a>
    </div>
    <p>Another challenge that comes with re-issuing certificates is Domain Control Validation (DCV). DCV is a check used to validate the ownership of a domain before a Certificate Authority can issue a certificate for it. When customers onboard to Cloudflare, they can either delegate Cloudflare to be their <a href="https://www.cloudflare.com/dns/">DNS provider</a>, or they can choose to use Cloudflare as a proxy while maintaining their current DNS provider.</p><p>When Cloudflare acts as the DNS provider for a domain, we can add Domain Control Validation (DCV) records on our customer’s behalf. This makes the certificate issuance and renewal process much simpler.</p><p>Domains that don’t use Cloudflare as their DNS provider — we call them <i>partial zones</i> — have to rely on other methods for completing DCV. When those domains proxy their traffic through us, we can complete HTTP DCV on their behalf, serving the HTTP DCV token from our Edge. However, customers that want their certificate issued before proxying their traffic need to manually complete DCV. In an event where Cloudflare has to re-issue thousands or millions of certificates, but cannot complete DCV on behalf of the customer, manual intervention will be required. While completing DCV is not an arduous task, it's not something that we should rely on our customers to do in an emergency, when they have a small time frame, with high risk involved.</p><p>This is where backup certificates come into play. From now on, every certificate issuance will fire two orders: one for a certificate from the primary CA and one for the backup certificate. When we can complete the DCV on behalf of the customer, we will do so for both CAs.</p><p>Today, we’re only issuing backup certificates for domains that use Cloudflare as an Authoritative DNS provider. In the future, we’ll order backup certificates for partial zones. That means that for backup certificates for which we are unable to complete DCV, we will give customers the corresponding DCV records to get the certificate issued.</p>
    <div>
      <h2>Backup Certificates Deployment Plan</h2>
      <a href="#backup-certificates-deployment-plan">
        
      </a>
    </div>
    <p>We are happy to announce that Cloudflare has started deploying backup certificates on <a href="https://developers.cloudflare.com/ssl/edge-certificates/universal-ssl/">Universal Certificate</a> orders for Free customers that use Cloudflare as an Authoritative DNS provider. We have been slowly ramping up the number of backup certificate orders and in the next few weeks, we expect every new Universal certificate pack order initiated on a Free, Pro, or Biz account to include a backup certificate, wrapped with a different key and issued from a different CA than the primary certificate.</p><p>At the end of April we will start issuing backup certificates for our Enterprise customers. If you’re an Enterprise customer and have any questions about backup certificates, please reach out to your Account Team.</p>
    <div>
      <h2>Next Up: Backup Certificates for All</h2>
      <a href="#next-up-backup-certificates-for-all">
        
      </a>
    </div>
    <p>Today, <a href="https://developers.cloudflare.com/ssl/edge-certificates/universal-ssl/">Universal certificates</a> make up 72% of the certificates in our pipeline. But we want full coverage! That’s why our team will continue building out our backup certificates pipeline to support <a href="https://www.cloudflare.com/ssl/">Advanced Certificates</a> and SSL for SaaS certificates. In the future, we will also issue backup certificates for certificates that our customers upload themselves, so they can have a backup they can rely on.</p><p>In addition, we will continue to improve our pipeline to make the deployment of backup certificates instantaneous — leaving our customers secure and online in an emergency.</p><p>At Cloudflare, our mission is to help build a better Internet. With backup certificates, we’re helping build a secure, reliable Internet that’s ready for any disaster. Interested in helping us out? <a href="https://www.cloudflare.com/careers/jobs/">We’re hiring</a>.</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[Product News]]></category>
            <guid isPermaLink="false">1Sg3pReEtokhfnkyXidaxN</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare for SaaS for All, now Generally Available!]]></title>
            <link>https://blog.cloudflare.com/cloudflare-for-saas-for-all-now-generally-available/</link>
            <pubDate>Fri, 22 Oct 2021 15:31:00 GMT</pubDate>
            <description><![CDATA[ We are very excited to announce that Cloudflare for SaaS is generally available, so that every customer, big and small, can use Cloudflare for SaaS to continue scaling and building their SaaS business.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p>During Developer Week a few months ago, we opened up the <a href="/cloudflare-for-saas/">Beta for Cloudflare for SaaS</a>: a one-stop shop for SaaS providers looking to provide fast load times, unparalleled redundancy, and the strongest security to their customers.</p><p>Since then, we’ve seen numerous developers integrate with our technology, allowing them to spend their time building out their solution instead of focusing on the burdens of running a fast, secure, and scalable infrastructure — after all, that’s what we’re here for.</p><p>Today, we are very excited to announce that Cloudflare for SaaS is generally available, so that every customer, big and small, can use Cloudflare for SaaS to continue scaling and building their SaaS business.</p>
    <div>
      <h2>What is Cloudflare for SaaS?</h2>
      <a href="#what-is-cloudflare-for-saas">
        
      </a>
    </div>
    <p>If you’re running a SaaS company, you have customers that are fully reliant on you for your service. That means you’re responsible for keeping their domain fast, secure, and protected. But this isn’t simple. There’s a long checklist you need to get through to put a solution in your customers’ hands:</p><ul><li><p>Set up an origin server</p></li><li><p>Encrypt your customers’ traffic</p></li><li><p>Keep your customers online</p></li><li><p>Boost the performance of global customers</p></li><li><p>Support vanity domains</p></li><li><p>Protect against attacks and bots</p></li><li><p>Scale for growth</p></li><li><p>Provide insights and analytics       </p></li></ul><p>And on top of that, you need to also focus on building out your solution and your business. As a developer or startup with limited resources, this can delay your product launch by weeks or months.</p><p>That’s what we’re here to help with! We have numerous engineering teams whose sole focus is to work on products that take care of each one of these tasks, so you don’t have to!</p><p>The Cloudflare solution:</p><ul><li><p>Set up an origin server  → Workers</p></li><li><p>Encrypt your customers’ traffic →  <a href="https://www.cloudflare.com/application-services/products/ssl-for-saas-providers/">SSL for SaaS</a></p></li><li><p>Keep your customers online → Cloudflare’s global Anycast network</p></li><li><p>Boost the performance of global customers → Argo Smart Routing/Cache</p></li><li><p>Support vanity domains → Custom Hostnames</p></li><li><p>Protect against attacks and bots → WAF and Bot Management</p></li><li><p>Scale for growth → Workers</p></li><li><p>Provide insights and analytics → Custom Hostname Analytics</p></li></ul>
    <div>
      <h2>Pricing, Made for Developers</h2>
      <a href="#pricing-made-for-developers">
        
      </a>
    </div>
    <p>Starting today, Cloudflare for SaaS is available to purchase on Free, Pro, and Business plans. We wanted to make sure that the pricing made sense for developers. At the time of building, you don’t know how many customers you’ll have, so we wanted to offer flexibility by keeping the pricing as simple as possible: only pay for the customers you use.</p><p>Each customer domain using the service is called a Custom Hostname. For each Custom Hostname, we automatically provision a <a href="https://www.cloudflare.com/application-services/products/ssl/">TLS certificate</a>. But not just that!  Beyond the TLS certificate, each of your Custom Hostnames inherits the full suite of Cloudflare products that you set up on your SaaS zone. From Bot Management to Argo Smart Routing, you can extend these add-ons that protect and accelerate your domain to your customers.</p><p>Custom Hostnames cost two dollars per month. We will only charge you after each Custom Hostname has been onboarded, adjusted according to when you created it. That means that if you created 10 Custom Hostnames at the start of the month and 10 Custom Hostnames halfway through, at the end of the month you will be billed $30.</p><p>This way, you’re only charged for the Custom Hostnames that you provision. It’s also a great incentive to make sure you clean up after your churned customers.</p><p>If you’re an Enterprise customer and want to learn more about the benefits that you can get from Cloudflare for SaaS, make sure you check out our <a href="/whats-new-with-cloudflare-for-saas/">blog post</a> about the latest developments.</p>
    <div>
      <h2>Show us what you’re building!</h2>
      <a href="#show-us-what-youre-building">
        
      </a>
    </div>
    <p>During the beta alone, we’ve seen incredible projects built out on the platform. We wanted to showcase these developers to show you what’s possible. And even better, some of these have been built on our Workers platform! We’d love to see what you’re working on. Join our <a href="https://discord.gg/rAYkEcFW7v">Discord channel</a> and showcase your work! Have feature requests for us? Let us know!</p>
    <div>
      <h4>mmm.page: Simple Personal Websites</h4>
      <a href="#mmm-page-simple-personal-websites">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4AqlTSiU00nyngatIgkzmX/d35b9b9c595b0841c143d2344da91c11/5.12.21_hero_main.gif" />
            
            </figure><p><a href="https://mmm.page/">mmm.page</a> is a drag-and-drop website builder that makes it dead simple to create auto-responsive, collage-like websites: websites with overlapping text, images, GIFs, YouTube videos, Spotify embeds, and (a lot) more. To make it easier, all the standard website tedium — uptime, usability, performance, reliability, responsiveness, SEO, etc. — are handled under the hood so all you have to worry about is adding content and arranging it how you want.</p><p>Under <i>their</i> hood is Cloudflare. Cloudflare’s CDN allows both the flexibility of server-side pages as well as the instant loading times of static pages — not to mention an 80% reduction in server costs. Custom Hostnames alone saved months of development time by handling <a href="https://www.cloudflare.com/learning/dns/glossary/what-is-a-domain-name/">domain names</a> and <a href="https://www.cloudflare.com/application-services/solutions/certificate-lifecycle-management/">SSL management</a> (which are otherwise tricky to get perfect and reliable).</p><p>They’ve used Workers for increasingly more tasks that would’ve otherwise taken an order of magnitude more time if implemented with their current backend monolith — the ease of deployment and comparatively low cost of Workers is something that keeps them coming back.</p><p>The longer-term hope is for pages to be used as a sort of beacon signal, an easy-to-make yet unbounded way to express to others the things you’re interested in, especially for things that aren’t so easily describable or captured in words. They look forward to a world of a ton more DIY micro-sites. Cloudflare has been crucial in taking care of much of the difficult technical plumbing and giving them more time to work on designs and features that get them closer to this hope.</p>
    <div>
      <h4>Lightfunnels</h4>
      <a href="#lightfunnels">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5XZTAhBsMbF32cEa88ywTy/76e27d52c2ec641ca96f5be485aef3df/Screen-Shot-2021-10-22-at-8.25.51-AM.png" />
            
            </figure><p><a href="https://lightfunnels.com">Lightfunnels</a> is a performance driven e-commerce and lead generation platform. It focuses on delivering fast, reliable, and highly converting sales funnels to its users and their customers.</p><p>With Cloudflare for SaaS, Lightfunnels allows users to preserve their brand by easily connecting their own domain names with SSL to use on their funnels.</p><p>The platform handles large e-commerce traffic volume through Cloudflare Workers. This helps Lightfunnels serve pages from the closest edge to the customer, wherever they are in the world, allowing for blazing fast page load speeds.</p><p>Workers also come with a powerful caching API that eliminates a great percentage of back-end trips and reduces the stress on their servers.</p><blockquote><p><i>“Our aim is to build the best performing e-commerce and lead generation platform on the market. Page load speeds play a significant role in performance. Using Cloudflare for SaaS along with Cloudflare Workers made building a reliable, secure, and fast infrastructure a breeze.”</i>- <b>Yassir Ennazk,</b> Co-founder &amp; CEO at Lightfunnels</p></blockquote>
    <div>
      <h4>Ventrata</h4>
      <a href="#ventrata">
        
      </a>
    </div>
    <p><a href="https://ventrata.com/">Ventrata</a> is a SaaS multi-channel booking platform for large attractions and tour operators. They power booking sites and B2B booking portals for clients that run on other domains. Cloudflare for SaaS has allowed them to leverage all of Cloudflare’s tools, including Firewall, image caching, Workers, and free TLS certificates on Custom Hostnames, while allowing their clients to keep full control of their brand. Their implementation involved just 4 lines of code without any infrastructure/DevOps help required, which would have been impossible before.</p>
    <div>
      <h3>Currently a part of the Beta?</h3>
      <a href="#currently-a-part-of-the-beta">
        
      </a>
    </div>
    <p>If you were accepted as a part of the Cloudflare for SaaS Beta, you will get a notice next week about migrating to the paid version.  </p>
    <div>
      <h2>Help build a better Internet</h2>
      <a href="#help-build-a-better-internet">
        
      </a>
    </div>
    <p>Want to be a part of the Cloudflare team and work on the products that power Cloudflare for SaaS? <a href="https://www.cloudflare.com/careers/">We’re hiring!</a></p> ]]></content:encoded>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Cloudflare for SaaS]]></category>
            <category><![CDATA[Developers]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">YiAq6zpyI6grxaDcKR0VD</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing SSL/TLS Recommender]]></title>
            <link>https://blog.cloudflare.com/ssl-tls-recommender/</link>
            <pubDate>Tue, 12 Oct 2021 13:01:00 GMT</pubDate>
            <description><![CDATA[ Introducing customized recommendations to improve the security of your website. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Seven years ago, Cloudflare made HTTPS availability for any Internet property easy and free with <a href="/introducing-universal-ssl/">Universal SSL</a>. At the time, few websites — other than those that processed sensitive data like passwords and credit card information — were using HTTPS because of how difficult it was to set up.</p><p>However, as we all started using the Internet for more and more private purposes (communication with loved ones, financial transactions, shopping, healthcare, etc.) the need for encryption became apparent. Tools like <a href="https://en.wikipedia.org/wiki/Firesheep">Firesheep</a> demonstrated how easily attackers could snoop on people using public Wi-Fi networks at coffee shops and airports. The <a href="https://blog.cryptographyengineering.com/2019/09/24/looking-back-at-the-snowden-revelations/">Snowden revelations</a> showed the ease with which governments could listen in on unencrypted communications at scale. We have seen attempts by browser vendors to increase HTTPS adoption such as the <a href="https://blog.chromium.org/2021/07/increasing-https-adoption.html">recent announcement by Chromium</a> for loading websites on HTTPS by default. Encryption has become a vital part of the modern Internet, not just to keep your information safe, but to keep you safe.</p><p>When it was launched, Universal SSL <a href="/introducing-universal-ssl/">doubled</a> the number of sites on the Internet using HTTPS. We are building on that with <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-tls-recommender">SSL/TLS Recommender</a>, a tool that guides you to stronger configurations for the backend connection from Cloudflare to origin servers. Recommender has been available in the SSL/TLS tab of the Cloudflare dashboard since August 2020 for self-serve customers. Over 500,000 zones are currently signed up. <b>As of today, it is available for all customers!</b></p>
    <div>
      <h2>How Cloudflare connects to origin servers</h2>
      <a href="#how-cloudflare-connects-to-origin-servers">
        
      </a>
    </div>
    <p>Cloudflare operates as a reverse proxy between clients (“visitors”) and customers’ web servers (“origins”), so that Cloudflare can protect origin sites from attacks and improve site performance. This happens, in part, because visitor requests to websites proxied by Cloudflare are processed by an “edge” server located in a data center close to the client. The edge server either responds directly back to the visitor, if the requested content is cached, or creates a new request to the origin server to retrieve the content.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/oClT8gZN3TtQjhYiJr464/642f9cba63b4f5489ed8d60274238e3c/image6-12.png" />
            
            </figure><p>The backend connection to the origin can be made with an unencrypted HTTP connection or with an HTTPS connection where requests and responses are encrypted using the <a href="https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/">TLS</a> protocol (historically known as <a href="https://www.cloudflare.com/learning/ssl/what-is-ssl/">SSL</a>). HTTPS is the secured form of HTTP and should be used <a href="https://www.cloudflare.com/learning/ssl/why-is-http-not-secure/">whenever possible</a> to avoid leaking information or allowing content tampering by third-party entities. The origin server can further authenticate itself by presenting a valid <a href="https://www.cloudflare.com/application-services/products/ssl/">TLS certificate</a> to prevent active <a href="/monsters-in-the-middleboxes/">monster-in-the-middle</a> attacks. Such a certificate can be obtained from a certificate authority such as <a href="https://letsencrypt.org/">Let’s Encrypt</a> or <a href="https://developers.cloudflare.com/ssl/origin-configuration/origin-ca">Cloudflare’s Origin CA</a>. Origins can also set up <a href="https://developers.cloudflare.com/ssl/origin-configuration/authenticated-origin-pull">authenticated origin pull</a>, which ensures that any HTTPS requests outside of Cloudflare will not receive a response from your origin.</p><p><a href="/tunnel-for-everyone/">Cloudflare Tunnel</a> provides an even more secure option for the connection between Cloudflare and origins. With Tunnel, users run a lightweight daemon on their origin servers that proactively establishes secure and private tunnels to the nearest Cloudflare data centers. With this configuration, users can completely lock down their origin servers to only receive requests routed through Cloudflare. While we encourage customers to set up tunnels if feasible, it's important to encourage origins with more traditional configurations to adopt the strongest possible security posture.</p>
    <div>
      <h3>Detecting HTTPS support</h3>
      <a href="#detecting-https-support">
        
      </a>
    </div>
    <p>You might wonder, why doesn’t Cloudflare always connect to origin servers with a secure TLS connection? To start, some origin servers have no TLS support at all (for example, certain <a href="https://community.letsencrypt.org/t/web-hosting-who-support-lets-encrypt/6920">shared hosting providers</a> and even <a href="https://kurti.sh/pubs/IMC_2020___Long_Tail_of_the_Internet.pdf">government sites</a> have been slow adopters) and rely on Cloudflare to ensure that the client request is at least encrypted over the Internet from the browser to Cloudflare’s edge.</p><p>Then why don’t we simply probe the origin to determine if TLS is supported? It turns out that many sites only <i>partially</i> support HTTPS, making the problem non-trivial. A single customer site can be served from multiple separate origin servers with differing levels of TLS support. For instance, some sites support HTTPS on their landing page but serve certain resources only over unencrypted HTTP. Further, site content can differ when accessed over HTTP versus HTTPS (for example, <a href="http://example.com">http://example.com</a> and <a href="https://example.com">https://example.com</a> can return different results).</p><p>Such content differences can arise due to misconfiguration on the origin server, accidental mistakes by developers when migrating their servers to HTTPS, or can even be intentional depending on the use case.</p><p>A <a href="https://www.cs.umd.edu/~dml/papers/https_tma20.pdf">study</a> by researchers at Northeastern University, the Max Planck Institute for Informatics, and the University of Maryland highlights reasons for some of these inconsistencies. They found that 1.5% of surveyed sites had at least one page that was unavailable over HTTPS — despite the protocol being supported on other pages — and 3.7% of sites served different content over HTTP versus HTTPS for at least one page. Thus, always using the most secure TLS setting detected on a particular resource could result in unforeseen side effects and usability issues for the entire site.</p><p>We wanted to tackle all such issues and maximize the number of TLS connections to origin servers, but without compromising a website’s functionality and performance.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/J0sdbGlU6cKVkaWJaR6nC/d98d243ee7d890676ba86a41a85d4d74/Screenshot-2021-10-11-at-16.17.39.png" />
            
            </figure><p>Content differences on sites when loaded over HTTPS vs HTTP; images taken from <a href="https://www.cs.umd.edu/~dml/papers/https_tma20.pdf">https://www.cs.umd.edu/~dml/papers/https_tma20.pdf</a> with author permission</p>
    <div>
      <h3>Configuring the SSL/TLS encryption mode</h3>
      <a href="#configuring-the-ssl-tls-encryption-mode">
        
      </a>
    </div>
    <p>Cloudflare relies on customers to indicate the level of TLS support at their origins via the zone’s <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes">SSL/TLS encryption mode</a>. The following SSL/TLS encryption modes can be configured from the Cloudflare dashboard:</p><ul><li><p><b>Off</b> indicates that client requests reaching Cloudflare as well as Cloudflare’s requests to the origin server should only use unencrypted HTTP. This option is never recommended, but is still in use by a handful of customers for legacy reasons or testing.</p></li><li><p><b>Flexible</b> allows clients to connect to Cloudflare’s edge via HTTPS, but requests to the origin are over HTTP only. This is the most common option for origins that do not support TLS. However, we encourage customers to upgrade their origins to support TLS whenever possible and only use <b>Flexible</b> as a <b>last resort</b>.</p></li><li><p><b>Full</b> enables encryption for requests to the origin when clients connect via HTTPS, but Cloudflare <i>does not attempt to validate the certificate</i>. This is useful for origins that have a self-signed or otherwise invalid certificate at the origin, but leaves open the possibility for an active attacker to impersonate the origin server with a fake certificate. Client HTTP requests result in HTTP requests to the origin.</p></li><li><p><b>Full (strict)</b> indicates that Cloudflare should validate the origin certificate to fully secure the connection. The origin certificate can either be issued by a public CA or by <a href="https://developers.cloudflare.com/ssl/origin-configuration/origin-ca">Cloudflare Origin CA</a>. HTTP requests from clients result in HTTP requests to the origin, exactly the same as in <b>Full</b> mode. We <b>strongly</b> recommend <b>Full (strict)</b> over weaker options if supported by the origin.</p></li><li><p><b>Strict (SSL-Only Origin Pull)</b> causes all traffic to the origin to go over HTTPS, even if the client request was HTTP. This differs from <b>Full (strict)</b> in that HTTP client requests will result in an <i>HTTPS</i> request to the origin, not HTTP. Most customers do not need to use this option, and it is available only to Enterprise customers. The preferred way to ensure that no HTTP requests reach your origin is to enable <a href="/how-to-make-your-site-https-only/">Always Use HTTPS</a> in conjunction with <b>Full</b> or <b>Full (strict)</b> to redirect visitor HTTP requests to the HTTPS version of the content.</p></li></ul>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6aX0Vn2QoaVooEamreEEha/0d8e29a895c9409b2ba7a3fd7bfb950f/image3-17.png" />
            
            </figure><p>SSL/TLS encryption modes determine how Cloudflare connects to origins</p><p>The SSL/TLS encryption mode is a zone-wide setting, meaning that Cloudflare applies the same policy to all subdomains and resources. If required, you can configure this setting more granularly via <a href="https://support.cloudflare.com/hc/en-us/articles/218411427-Understanding-and-Configuring-Cloudflare-Page-Rules-Page-Rules-Tutorial-">Page Rules</a>. Misconfiguring this setting can make site resources unavailable. For instance, suppose your website loads certain assets from an HTTP-only subdomain. If you set your zone to <b>Full</b> or <b>Full (strict)</b>, you might make these assets unavailable for visitors that request the content over HTTPS, since the HTTP-only subdomain lacks HTTPS support.</p>
    <div>
      <h3>Importance of secure origin connections</h3>
      <a href="#importance-of-secure-origin-connections">
        
      </a>
    </div>
    <p>When an end-user visits a site proxied by Cloudflare, there are two connections to consider: the front-end connection between the visitor and Cloudflare and the back-end connection between Cloudflare and the customer origin server. The front-end connection typically presents the largest attack surface (for example, think of the classic example of an attacker snooping on a coffee shop’s Wi-Fi network), but securing the back-end connection is equally important. While all SSL/TLS encryption modes (except <b>Off</b>) secure the front-end connection, less secure modes leave open the possibility of malicious activity on the backend.</p><p>Consider a zone set to <b>Flexible</b> where the origin is connected to the Internet via an untrustworthy ISP. In this case, spyware deployed by the customer’s ISP in an on-path middlebox could inspect the plaintext traffic from Cloudflare to the origin server, potentially resulting in privacy violations or leaks of confidential information. Upgrading the zone to <b>Full</b> or a stronger mode to encrypt traffic to the ISP would help prevent this basic form of snooping.</p><p>Similarly, consider a zone set to <b>Full</b> where the origin server is hosted in a shared hosting provider facility. An attacker colocated in the same facility could generate a fake certificate for the origin (since the certificate isn’t validated for <b>Full</b>) and deploy an attack technique such as <a href="https://en.wikipedia.org/wiki/ARP_spoofing">ARP spoofing</a> to direct traffic intended for the origin server to an attacker-owned machine instead. The attacker could then leverage this setup to inspect and filter traffic intended for the origin, resulting in site breakage or content unavailability. The attacker could even inject malicious JavaScript into the response served to the visitor to carry out other nefarious goals. Deploying a valid Cloudflare-trusted certificate on the origin and configuring the zone to use <b>Full (strict)</b> would prevent Cloudflare from trusting the attacker’s fake certificate in this scenario, preventing the <a href="https://www.cloudflare.com/learning/dns/what-is-domain-hijacking/">hijack</a>.</p><p>Since a secure backend only improves your <a href="https://www.cloudflare.com/learning/security/how-to-secure-a-website/">website security</a>, we strongly encourage setting your zone to the highest possible SSL/TLS encryption mode whenever possible.</p>
    <div>
      <h3>Balancing functionality and security</h3>
      <a href="#balancing-functionality-and-security">
        
      </a>
    </div>
    <p>When Universal SSL was launched, Cloudflare’s goal was to get as many sites away from the status quo of HTTP as possible. To accomplish this, Cloudflare provisioned TLS certificates for all customer domains to secure the connection between the browser and the edge. Customer sites that did not already have TLS support were defaulted to <b>Flexible,</b> to preserve existing site functionality. Although <b>Flexible</b> is <b>not recommended</b> for most zones, we continue to support this option as some Cloudflare customers still rely on it for origins that do not yet support TLS. Disabling this option would make these sites unavailable. Currently, the default option for newly onboarded zones is <b>Full</b> if we detect a TLS certificate on the origin zone, and <b>Flexible</b> otherwise.</p><p>Further, the SSL/TLS encryption mode configured at the time of zone sign-up can become suboptimal as a site evolves. For example, a zone might switch to a hosting provider that supports origin certificate installation. An origin server that is able to serve all content over TLS should at least be on <b>Full</b>. An origin server that has a valid TLS certificate installed should use <b>Full (strict)</b> to ensure that communication between Cloudflare and the origin server is not susceptible to monster-in-the-middle attacks.</p><p>The Research team combined lessons from academia and our engineering efforts to make encryption easy, while ensuring the highest level of security possible for our customers. Because of that goal, we’re proud to introduce SSL/TLS Recommender.</p>
    <div>
      <h2>SSL/TLS Recommender</h2>
      <a href="#ssl-tls-recommender">
        
      </a>
    </div>
    <p>Cloudflare’s mission is to help build a better Internet, and that includes ensuring that requests from visitors to our customers’ sites are as secure as possible. To that end, we began by asking ourselves the following question: how can we detect when a customer is able to use a more secure SSL/TLS encryption mode without impacting site functionality?</p><p>To answer this question, we built the <a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-tls-recommender">SSL/TLS Recommender</a>. Customers can enable Recommender for a zone via the SSL/TLS tab of the Cloudflare dashboard. Using a zone’s currently configured SSL/TLS option as the baseline for expected site functionality, the Recommender performs a series of checks to determine if an upgrade is possible. If so, we email the zone owner with the recommendation. If a zone is currently misconfigured — for example, an HTTP-only origin configured on <b>Full</b> — Recommender will not recommend a downgrade.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3nc5iSzjUtxNTAjNF0g8Kz/619643b0edcc9019e001a551206efcc5/image9-8.png" />
            
            </figure><p>The checks that Recommender runs are determined by the site’s currently configured SSL/TLS option.</p><p>The simplest check is to determine if a customer can upgrade from <b>Full</b> to <b>Full (strict)</b>. In this case, all site resources are already served over HTTPS, so the check comprises a few simple tests of the validity of the TLS certificate for the domain and all subdomains (which can be on separate origin servers).</p><p>The check to determine if a customer can upgrade from <b>Off</b> or <b>Flexible</b> to <b>Full</b> is more complex. A site can be upgraded if all resources on the site are available over HTTPS and the content <i>matches</i> when served over HTTP versus HTTPS. Recommender carries out this check as follows:</p><ul><li><p>Crawl customer sites to collect links. For large sites where it is impractical to scan every link, Recommender tests only a subset of links (up to some threshold), leading to a trade-off between performance and potential false positives. Similarly, for sites where the crawl turns up an insufficient number of links, we augment our results with a sample of links from recent visitors requests to the zone to provide a high-confidence recommendation. The crawler uses the user agent <i>Cloudflare-SSLDetector</i> and has been added to Cloudflare’s list of <a href="https://developers.cloudflare.com/firewall/known-issues-and-faq#bots-currently-detected">known good bots</a>. Similar to <a href="https://developers.cloudflare.com/cache/about/always-online">other Cloudflare crawlers</a>, Recommender ignores robots.txt (except for rules explicitly targeting the crawler’s user agent) to avoid negatively impacting the accuracy of the recommendation.</p></li><li><p>Download the content of each link over both HTTP and HTTPS. Recommender makes only idempotent GET requests when scanning origin servers to avoid modifying server resource state.</p></li><li><p>Run a content similarity algorithm to determine if the content matches. The algorithm is adapted from a research paper called "<a href="https://www.cs.umd.edu/~dml/papers/https_tma20.pdf">A Deeper Look at Web Content Availability and Consistency over HTTP/S</a>" (TMA Conference 2020) and is designed to provide an accurate similarity score even for sites with dynamic content.</p></li></ul><p>Recommender is conservative with recommendations, erring on the side of maintaining current site functionality rather than risking breakage and usability issues. If a zone is non-functional, the zone owner blocks all types of bots, or if misconfigured SSL-specific Page Rules are applied to the zone, then Recommender will not be able to complete its scans and provide a recommendation. Therefore, it is not intended to resolve issues with website or domain functionality, but rather maximize your zone’s security when possible.</p><p>Please send questions and feedback to <a href="#">ask-research@cloudflare.com</a>. We’re excited to continue this line of work to improve the security of customer origins!</p>
    <div>
      <h2>Mentions</h2>
      <a href="#mentions">
        
      </a>
    </div>
    <p>While this work is led by the Research team, we have been extremely privileged to get support from all across the company!</p><p>Special thanks to the incredible team of interns that contributed to SSL/TLS Recommender. Suleman Ahmad (now full-time), Talha Paracha, and Ananya Ghose built the current iteration of the project and Matthew Bernhard helped to lay the groundwork in a previous iteration of the project.</p> ]]></content:encoded>
            <category><![CDATA[Research]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Product News]]></category>
            <guid isPermaLink="false">6WBTTN7lG2fbQfdx6Z4eq8</guid>
            <dc:creator>Suleman Ahmad</dc:creator>
            <dc:creator>Talha Paracha</dc:creator>
            <dc:creator>Luke Valenta</dc:creator>
        </item>
        <item>
            <title><![CDATA[Staging TLS Certificates: Make every deployment a safe deployment]]></title>
            <link>https://blog.cloudflare.com/staging-tls-certificate-every-deployment-safe-deployment/</link>
            <pubDate>Wed, 06 Oct 2021 12:56:13 GMT</pubDate>
            <description><![CDATA[ We are excited to announce that Enterprise customers now have the ability to test custom uploaded certificates in a staging environment before pushing them to production.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p>We are excited to announce that Enterprise customers now have the ability to test custom uploaded certificates in a staging environment before pushing them to production.</p>
    <div>
      <h3>With great power comes great responsibility</h3>
      <a href="#with-great-power-comes-great-responsibility">
        
      </a>
    </div>
    <p>If you’re running a website or the API that’s behind a popular app, you know your users have high expectations: it can't just be up and running; it also has to be fast and secure. One of the easiest and most standardized ways to secure connections is with the TLS protocol. To do that, you need to acquire a <a href="https://www.cloudflare.com/application-services/products/ssl/">TLS certificate</a> for your domain.</p><p>One way to get a certificate is by using a <a href="https://www.cloudflare.com/learning/cdn/what-is-a-cdn/">CDN provider</a>, like Cloudflare. We make the process really easy by issuing certificates on your behalf. Not just that, but when your certificate is getting closer to its expiration date, we are responsible for re-issuing it. But, if you don’t want Cloudflare to issue the certificate on your behalf and want to obtain the certificate yourself, you can do so. You can either keep control of your private key, or generate a Certificate Signing Request (CSR) through Cloudflare, so we maintain the private key, but you can still use the certificate authority (CA) of your choice for the certificate. Once you get your certificate, you upload it to Cloudflare and voilà — your site is secure.</p><p>One of the downsides of obtaining your own certificate is that you’re in charge of its renewal, which comes with a great deal of responsibility. You have to ensure that any renewed certificate  will not cause TLS errors, causing your property to be unreachable by your users.</p><p>Now, you’re probably wondering, why is this so risky? What could go wrong?</p><p>It’s possible that when you renew a certificate, you forget to include one of your subdomains in the certificate. Another reason why your clients might see failures when you upload the new certificate is that some of those clients are pinning the old certificate.</p>
    <div>
      <h3>The problem with pinning certificates</h3>
      <a href="#the-problem-with-pinning-certificates">
        
      </a>
    </div>
    <p>Certificate pinning allows Internet application owners to say “trust this certificate and no other” by pinning the certificate or public key to their service, or even to client devices. While this was originally intended to tighten security, certificate pinning has created many problems. We have seen customers shoot themselves in the foot with certificate pinning numerous times. There are a lot of things that could go wrong: you could pin the wrong certificate, or configure the wrong settings, which will bring your service down. It’s possible that you rely on a CDN for your certificate renewal and forgot to update your pin — again, blocking access to your service in the process. Alternatively, you can pin certificates to clients so that they refuse connections from servers that don’t have the same certificate. But when it comes to renewing that certificate, you have to make sure that your clients have the updated certificate, or they won’t be able to access your server. Instead, you can use tools like Cloudflare’s Certificate Transparency Monitoring which notifies you when certificates are being issued for your domain.</p><p>But, some of our customers do rely on this behavior. So for them, switching to a new certificate is a big change — one that can bring down their whole application. For this reason, they need to be able to test the new certificate to identify any problems that may occur before their customers see it.</p>
    <div>
      <h3>A staging environment for certificate deployments</h3>
      <a href="#a-staging-environment-for-certificate-deployments">
        
      </a>
    </div>
    <p>When it comes to your traffic, there are things you can’t predict. You can’t control if your customer’s browser is having a bad day, or if some ISP is having a network outage. When it comes to certificate deployment, the last thing you want is to be surprised. Imagine pushing out a new certificate, and realizing you’ve uploaded the wrong one only after customers complain they’ve lost access; or that you never updated your pin to your new certificate to begin with. Mistakes happen, but this type of outage can cause a lot of pain and lose you a lot of money and trust. The good news is that this is preventable.</p><p>We are giving customers the ability to find these problems before they’re encountered by real users. We’re doing this by giving customers the ability to test certificate deployment changes against a pair of staging IPs.</p><p>Imagine uploading a new certificate, finding any related problems, and fixing them in a way that doesn’t impact production traffic. That’s exactly what Staging Certificates allows you to do!</p><p>You can go to the Staging Certificates section under the SSL/TLS tab in the Cloudflare dashboard and upload a new certificate to our staging network. The staging network will replicate your production environment but will only be accessible through the Staging IPs.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/fNtIwuq25OxUuGOADltbV/837cc254af65defc8c26438d9cbe9c16/image1-13.png" />
            
            </figure><p>Once you upload your certificate, you can make `curl` requests against the staging IPs to verify that it’s being served and that it covers all the hostnames that you need it to. If you’ve decided to pin your previous certificate, the staging environment helps you verify that your pins have been updated correctly and that TLS termination is successful.</p><p>Once you’re confident in your tests, you can push the certificate out to production.</p>
    <div>
      <h3>Oh no, something went wrong</h3>
      <a href="#oh-no-something-went-wrong">
        
      </a>
    </div>
    <p>Mistakes happen. It’s possible that you found one client device whose pin you forgot to update. In that case, you can disable the certificate to quickly mitigate the problem by rolling back to the certificate that you were last serving.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4FgeBZJlVphPRrA6Fciaid/ad85f91827471d7541a073096875a1c2/image3-10.png" />
            
            </figure><p>What if you realize that this is a bigger issue, and you need more time to test? You can push the disabled certificate back to the staging environment, and when you’ve verified everything works correctly, push it back to production.</p>
    <div>
      <h3>Staging changes: We’re just getting started</h3>
      <a href="#staging-changes-were-just-getting-started">
        
      </a>
    </div>
    <p>We want to de-risk every change you make. Staging your custom uploaded certificates is a start, but it doesn’t end there. In the future, we’ll allow you to stage certificate renewals for certificates issued through Cloudflare. We’re also planning to give customers the ability to test TLS configuration changes like minimum TLS or cipher suite settings.</p><p>If you’re interested in staying aware of these future developments, or you have some settings that you want to test in staging, reach out to your Account team and let them know!</p>
    <div>
      <h3>Ready to test your next certificate deployment?</h3>
      <a href="#ready-to-test-your-next-certificate-deployment">
        
      </a>
    </div>
    <p>This feature is currently in Beta and available to Enterprise customers. If you want to use it, reach out to your Account team to get it enabled.</p> ]]></content:encoded>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[SSL]]></category>
            <guid isPermaLink="false">2qgwKz2725OrLFZFaCbV6u</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[What’s new with Cloudflare for SaaS?]]></title>
            <link>https://blog.cloudflare.com/whats-new-with-cloudflare-for-saas/</link>
            <pubDate>Tue, 07 Sep 2021 12:57:06 GMT</pubDate>
            <description><![CDATA[ Today, we’re excited to announce all the customizations that our team has been working on for our Enterprise customers — for both Cloudflare for SaaS and SSL for SaaS. ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/VqLLgTYGePE0S09caFIqn/e36ed55fb383de7a0bfd8763d4336828/image2-1.png" />
            
            </figure><p><a href="/cloudflare-for-saas/">This past April</a>, we announced the Cloudflare for SaaS Beta which makes our SSL for SaaS product available to everyone. This allows any customer — from first-time developers to large enterprises — to use Cloudflare for SaaS to extend our full product suite to their own customers. SSL for SaaS is the subset of Cloudflare for SaaS features that focus on a customer’s Public Key Infrastructure (PKI) needs.</p><p>Today, we’re excited to announce all the customizations that our team has been working on for our Enterprise customers — for both Cloudflare for SaaS and SSL for SaaS.</p>
    <div>
      <h3>Let’s start with the basics — the common SaaS setup</h3>
      <a href="#lets-start-with-the-basics-the-common-saas-setup">
        
      </a>
    </div>
    <p>If you’re running a SaaS company, your solution might exist as a subdomain of your SaaS website, e.g. template.&lt;<i>mysaas&gt;</i>.com, but ideally, your solution would allow the customer to use their own vanity hostname for it, such as example.com.</p><p>The most common way to begin using a SaaS company’s service is to point a CNAME DNS record to the subdomain that the SaaS provider has created for your application. This ensures traffic gets to the right place, and it allows the SaaS provider to make infrastructure changes without involving your end customers.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1e65t2gMZxa81OVQ04OhHb/69605839a139551e01feca1b7c52a55d/image4.png" />
            
            </figure><p>We kept this in mind when we built our SSL for SaaS a few years ago. SSL for SaaS takes away the burden of certificate issuance and management from the SaaS provider by proxying traffic through Cloudflare’s edge. All the SaaS provider needs to do is onboard their zone to Cloudflare and ask their end customers to create a CNAME to the SaaS zone — something they were already doing.</p><p>The big benefit of giving your customers a CNAME record (instead of a fixed IP address) is that it gives you, the SaaS provider, more flexibility and control. It allows you to seamlessly change the IP address of your server in the background. For example, if your IP gets blocked by ISP providers, you can update that address on your customers’ behalf with a CNAME record. With a fixed A record, you rely on each of your customers to make a change.</p><p>While the CNAME record works great for most customers, some came back and wanted to bypass the limitation that CNAME records present. RFC 1912 states that CNAME records cannot coexist with other DNS records, so in most cases, you cannot have a CNAME at the root of your domain, e.g. example.com. Instead, the CNAME needs to exist at the subdomain level, i.e. <a href="http://www.example.com">www.example.com</a>. Some DNS providers (including Cloudflare) bypass this restriction through a method called <a href="/introducing-cname-flattening-rfc-compliant-cnames-at-a-domains-root/">CNAME flattening</a>.</p><p>Since SaaS providers have no control over the DNS provider that their customers are using, the feedback they got from their customers was that they wanted to use the apex of their zone and not the subdomain. So when our SaaS customers came back asking us for a solution, we delivered. We call it Apex Proxying.</p>
    <div>
      <h3>Apex Proxying</h3>
      <a href="#apex-proxying">
        
      </a>
    </div>
    <p>For our SaaS customers who want to allow their customers to proxy their apex to their zone, regardless of which DNS provider they are using, we give them the option of Apex Proxying. Apex Proxying is an SSL for SaaS feature that gives SaaS providers a pair of IP addresses to provide to their customers when CNAME records do not work for them.</p><p>Cloudflare starts by allocating a dedicated set of IPs for the SaaS provider. The SaaS provider then gives their customers these IPs that they can add as A or AAAA DNS records, allowing them to proxy traffic directly from the apex of their zone.</p><p>While this works for most, some of our customers want more flexibility. They want to have multiple IPs that they can change, or they want to assign different sets of customers to different buckets of IPs. For those customers, we give them the option to bring their own IP range, so they control the IP allocation for their application.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7bZIm6ydNUeN8pbEhNnzlW/27bb817711720689ce6ac6c1c2b03f43/image1.png" />
            
            </figure>
    <div>
      <h3>Bring Your Own IPs</h3>
      <a href="#bring-your-own-ips">
        
      </a>
    </div>
    <p>Last year, we announced <a href="/bringing-your-own-ips-to-cloudflare-byoip/">Bring Your Own IP</a> (BYOIP), which allows customers to bring their own IP range for Cloudflare to announce at our edge. One of the benefits of BYOIP is that it allows SaaS customers to allocate that range to their account and then, instead of having a few IPs that their customers can point to, they can distribute all the IPs in their range.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/Tt3UYXZalgTeHkO274O1i/58b3e5d51c6e1d400e223b3c23319878/image3.png" />
            
            </figure><p>SaaS customers often require granular control of how their IPs are allocated to different zones that belong to different customers. With 256 IPs to use, you have the flexibility to either group customers together or to give them dedicated IPs. It’s up to you!</p><p>While we’re on the topic of grouping customers, let’s talk about how you might want to do this when sending traffic to your origin.</p>
    <div>
      <h3>Custom Origin Support</h3>
      <a href="#custom-origin-support">
        
      </a>
    </div>
    <p>When setting up Cloudflare for SaaS, you indicate your fallback origin, which defines the origin that all of your Custom Hostnames are routed to. This origin can be defined by an IP address or point to a load balancer defined in the zone. However, you might not want to route all customers to the same origin. Instead, you want to route different customers (or custom hostnames) to different origins — either because you want to group customers together or to help you scale the origins supporting your application.</p><p>Our Enterprise customers can now choose a custom origin that is not the default fallback origin for any of their Custom Hostnames. Traditionally, this has been done by emailing your account manager and requesting custom logic at Cloudflare's edge, a very cumbersome and outdated practice. But now, customers can easily indicate this in the UI or in their <a href="https://api.cloudflare.com/#custom-hostname-for-a-zone-properties">API requests.</a></p>
    <div>
      <h3>Wildcard Support</h3>
      <a href="#wildcard-support">
        
      </a>
    </div>
    <p>Oftentimes, SaaS providers have customers that don’t just want their domain to stay protected and encrypted, but also the subdomains that fall under it.</p><p>We wanted to give our Enterprise customers the flexibility to extend this benefit to their end customers by offering wildcard support for <a href="https://developers.cloudflare.com/ssl/ssl-for-saas">Custom Hostnames</a>.</p><p>Wildcard Custom Hostnames extend the Custom Hostname’s configuration from a specific hostname — e.g. “blog.example.com” — to the next level of subdomains of that hostname, e.g. “*.blog.example.com”.</p><p>To create a Custom Hostname with a wildcard, you can either indicate <b>Enable wildcard support</b> when creating a Custom Hostname in the Cloudflare dashboard or when you’re creating a Custom Hostname <a href="https://api.cloudflare.com/#custom-hostname-for-a-zone-create-custom-hostname">through the API</a>, indicate wildcard: “true”.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4Y7NGTSMfEDIQU0c1lmamk/4a36f05ef3b828febad17945c0d8f045/image5.png" />
            
            </figure><p>Now let’s switch gears to <a href="https://www.cloudflare.com/application-services/products/ssl/">TLS certificate management</a> and the improvements our team has been working on.</p>
    <div>
      <h3>TLS Management for All</h3>
      <a href="#tls-management-for-all">
        
      </a>
    </div>
    <p>SSL for SaaS was built to <a href="https://www.cloudflare.com/application-services/solutions/certificate-lifecycle-management/">reduce the burden of certificate management</a> for SaaS providers. The initial functionality was meant to serve most customers and their need to issue, maintain, and renew certificates on their customers’ behalf. But one size does not fit all, and some of our customers have more specific needs for their certificate management — and we want to make sure we accommodate them.</p>
    <div>
      <h3>CSR Support/Custom certs</h3>
      <a href="#csr-support-custom-certs">
        
      </a>
    </div>
    <p>One of the superpowers of <a href="https://www.cloudflare.com/application-services/products/ssl-for-saas-providers/">SSL for SaaS</a> is that it allows Cloudflare to manage all the certificate issuance and renewals on behalf of our customers and their customers. However, some customers want to allow their end customers to upload their own certificates.</p><p>For example, a bank may only trust certain certificate authorities (CAs) for their certificate issuance. Alternatively, the SaaS provider may have initially built out TLS support for their customers and now their customers expect that functionality to be available. Regardless of the reasoning, we have given our customers a few options that satisfy these requirements.</p><p>For customers who want to maintain control over their TLS private keys or give their customers the flexibility to use their certification authority (CA) of choice, we allow the SaaS provider to upload their customer’s certificate.</p><p>If you are a SaaS provider and one of your customers does not allow third parties to generate keys on their behalf, then you want to allow that customer to <a href="https://developers.cloudflare.com/ssl/ssl-for-saas/uploading-certificates">upload their own certificate</a>. Cloudflare allows SaaS providers to upload their customers’ certificates to any of their custom hostnames — in just one API call!</p><p>Some SaaS providers never want a person to see private key material, but want to be able to use the CA of their choice. They can do so by generating a <a href="https://developers.cloudflare.com/ssl/ssl-for-saas/certificate-signing-requests">Certificate Signing Request (CSR)</a> for their Custom Hostnames, and then either use those CSRs themselves to order certificates for their customers or relay the CSRs to their customers so that they can provision their own certificates. In either case, the SaaS provider is able to then upload the certificate for the Custom Hostname after the certificate has been issued from their customer’s CA for use at Cloudflare’s edge.</p>
    <div>
      <h3>Custom Metadata</h3>
      <a href="#custom-metadata">
        
      </a>
    </div>
    <p>For our customers who need to customize their configuration to handle specific rules for their customer’s domains, they can do so by using <a href="https://developers.cloudflare.com/ssl/ssl-for-saas/hostname-specific-behavior/custom-metadata">Custom Metadata and Workers</a>.</p><p>By adding metadata to an individual custom hostname and then deploying a Worker to read the data, you can use the Worker to customize per-hostname behavior.</p><p>Some customers use this functionality to add a customer_id field to each custom hostname that they then send in a request header to their origin. Another way to use this is to set headers like HTTP Strict Transport Security (HSTS) on a per-customer basis.</p>
    <div>
      <h3>Saving the best for last: Analytics!</h3>
      <a href="#saving-the-best-for-last-analytics">
        
      </a>
    </div>
    <p>Tomorrow, we have a very special announcement about how you can now get more visibility into your customers’ traffic and — more importantly —  how you can share this information back to them.</p>
    <div>
      <h3>Interested? Reach out!</h3>
      <a href="#interested-reach-out">
        
      </a>
    </div>
    <p>If you’re an Enterprise customer, and you’re interested in any of these features, reach out to your account team to get access today!</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare for SaaS]]></category>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[SaaS]]></category>
            <category><![CDATA[BYOIP]]></category>
            <guid isPermaLink="false">5tBnqDHqyjuO4hllMWCNQ</guid>
            <dc:creator>Dina Kozlov</dc:creator>
        </item>
        <item>
            <title><![CDATA[Automated Origin CA for Kubernetes]]></title>
            <link>https://blog.cloudflare.com/automated-origin-ca-for-kubernetes/</link>
            <pubDate>Fri, 13 Nov 2020 12:00:00 GMT</pubDate>
            <description><![CDATA[ Today we're releasing origin-ca-issuer, an extension to cert-manager integrating with Cloudflare Origin CA to easily create and renew certificates for your account's domains. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>In 2016, we launched the <a href="/cloudflare-ca-encryption-origin/">Cloudflare Origin CA</a>, a certificate authority optimized for making it easy to secure the connection between Cloudflare and an origin server. Running our own CA has allowed us to support fast issuance and renewal, simple and effective revocation, and wildcard certificates for our users.</p><p>Out of the box, managing <a href="https://www.cloudflare.com/application-services/products/ssl/">TLS certificates</a> and keys within Kubernetes can be challenging and error prone. The secret resources have to be constructed correctly, as components expect secrets with specific fields. Some forms of domain verification require manually rotating secrets to pass. Once you're successful, don't forget to renew before the certificate expires!</p><p><a href="https://cert-manager.io/">cert-manager</a> is a project to fill this operational gap, providing Kubernetes resources that <a href="https://www.cloudflare.com/application-services/solutions/certificate-lifecycle-management/">manage the lifecycle of a certificate.</a> Today we're releasing <a href="https://github.com/cloudflare/origin-ca-issuer">origin-ca-issuer</a>, an extension to cert-manager integrating with Cloudflare Origin CA to easily create and renew certificates for your account's domains.</p>
    <div>
      <h2>Origin CA Integration</h2>
      <a href="#origin-ca-integration">
        
      </a>
    </div>
    
    <div>
      <h3>Creating an Issuer</h3>
      <a href="#creating-an-issuer">
        
      </a>
    </div>
    <p>After installing cert-manager and origin-ca-issuer, you can create an OriginIssuer resource. This resource creates a binding between cert-manager and the Cloudflare API for an account. Different issuers may be connected to different Cloudflare accounts in the same Kubernetes cluster.</p>
            <pre><code>apiVersion: cert-manager.k8s.cloudflare.com/v1
kind: OriginIssuer
metadata:
  name: prod-issuer
  namespace: default
spec:
  signatureType: OriginECC
  auth:
    serviceKeyRef:
      name: service-key
      key: key
      ```</code></pre>
            <p>This creates a new OriginIssuer named "prod-issuer" that issues certificates using ECDSA signatures, and the secret "service-key" in the same namespace is used to authenticate to the Cloudflare API.</p>
    <div>
      <h3>Signing an Origin CA Certificate</h3>
      <a href="#signing-an-origin-ca-certificate">
        
      </a>
    </div>
    <p>After creating an OriginIssuer, we can now create a Certificate with cert-manager. This defines the domains, including wildcards, that the certificate should be issued for, how long the certificate should be valid, and when cert-manager should renew the certificate.</p>
            <pre><code>apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: example-com
  namespace: default
spec:
  # The secret name where cert-manager
  # should store the signed certificate.
  secretName: example-com-tls
  dnsNames:
    - example.com
  # Duration of the certificate.
  duration: 168h
  # Renew a day before the certificate expiration.
  renewBefore: 24h
  # Reference the Origin CA Issuer you created above,
  # which must be in the same namespace.
  issuerRef:
    group: cert-manager.k8s.cloudflare.com
    kind: OriginIssuer
    name: prod-issuer
</code></pre>
            <p>Once created, cert-manager begins managing the lifecycle of this certificate, including creating the key material, crafting a certificate signature request (CSR), and constructing a certificate request that will be processed by the origin-ca-issuer.</p><p>When signed by the Cloudflare API, the certificate will be made available, along with the private key, in the Kubernetes secret specified within the secretName field. You'll be able to use this certificate on servers proxied behind Cloudflare.</p>
    <div>
      <h3>Extra: Ingress Support</h3>
      <a href="#extra-ingress-support">
        
      </a>
    </div>
    <p>If you're using an Ingress controller, you can use cert-manager's <a href="https://cert-manager.io/docs/usage/ingress/">Ingress support</a> to automatically manage Certificate resources based on your Ingress resource.</p>
            <pre><code>apiVersion: networking/v1
kind: Ingress
metadata:
  annotations:
    cert-manager.io/issuer: prod-issuer
    cert-manager.io/issuer-kind: OriginIssuer
    cert-manager.io/issuer-group: cert-manager.k8s.cloudflare.com
  name: example
  namespace: default
spec:
  rules:
    - host: example.com
      http:
        paths:
          - backend:
              serviceName: examplesvc
              servicePort: 80
            path: /
  tls:
    # specifying a host in the TLS section will tell cert-manager 
    # what DNS SANs should be on the created certificate.
    - hosts:
        - example.com
      # cert-manager will create this secret
      secretName: example-tls
</code></pre>
            
    <div>
      <h2>Building an External cert-manager Issuer</h2>
      <a href="#building-an-external-cert-manager-issuer">
        
      </a>
    </div>
    <p>An external cert-manager issuer is a specialized Kubernetes controller. There's no direct communication between cert-manager and external issuers at all; this means that you can use any existing tools and best practices for developing controllers to develop an external issuer.</p><p>We've decided to use the excellent <a href="https://github.com/kubernetes-sigs/controller-runtime">controller-runtime</a> project to build origin-ca-issuer, running two reconciliation controllers.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/MASdtZ7CMaW8JO3SCgb5t/4956cb2ac00a920a9901605adf1e9f68/image1-4.png" />
            
            </figure>
    <div>
      <h3>OriginIssuer Controller</h3>
      <a href="#originissuer-controller">
        
      </a>
    </div>
    <p>The OriginIssuer controller watches for creation and modification of OriginIssuer custom resources. The controllers create a Cloudflare API client using the details and credentials referenced. This client API instance will later be used to sign certificates through the API. The controller will periodically retry to create an API client; once it is successful, it updates the OriginIssuer's status to be ready.</p>
    <div>
      <h3>CertificateRequest Controller</h3>
      <a href="#certificaterequest-controller">
        
      </a>
    </div>
    <p>The CertificateRequest controller watches for the creation and modification of cert-manager's CertificateRequest resources. These resources are created automatically by cert-manager as needed during a certificate's lifecycle.</p><p>The controller looks for Certificate Requests that reference a known OriginIssuer, this reference is copied by cert-manager from the origin Certificate resource, and ignores all resources that do not match. The controller then verifies the OriginIssuer is in the ready state, before transforming the certificate request into an API request using the previously created clients.</p><p>On a successful response, the signed certificate is added to the certificate request, and which cert-manager will use to create or update the secret resource. On an unsuccessful request, the controller will periodically retry.</p>
    <div>
      <h2>Learn More</h2>
      <a href="#learn-more">
        
      </a>
    </div>
    <p>Up-to-date documentation and complete installation instructions can be found in our <a href="https://github.com/cloudflare/origin-ca-issuer">GitHub repository</a>. Feedback and contributions are greatly appreciated. If you're interested in Kubernetes at Cloudflare, including building controllers like these, <a href="https://www.cloudflare.com/careers/jobs/">we're hiring</a>.</p> ]]></content:encoded>
            <category><![CDATA[Kubernetes]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[TLS]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[API]]></category>
            <guid isPermaLink="false">7akG4xBepli4ZP133CXBCf</guid>
            <dc:creator>Terin Stock</dc:creator>
        </item>
        <item>
            <title><![CDATA[Introducing Certificate Transparency Monitoring]]></title>
            <link>https://blog.cloudflare.com/introducing-certificate-transparency-monitoring/</link>
            <pubDate>Thu, 08 Aug 2019 22:00:00 GMT</pubDate>
            <description><![CDATA[ With CT Monitoring, we’ll send you an email whenever a certificate is issued for one of your domains.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Today we’re launching <b>Certificate Transparency Monitoring</b> (my summer project as an intern!) to help customers spot malicious certificates. If you opt into CT Monitoring, we’ll send you an email whenever a certificate is issued for one of your domains. We crawl all public logs to find these certificates quickly. CT Monitoring is available now in public beta and can be enabled in the <a href="https://dash.cloudflare.com/?zone=crypto">Crypto Tab</a> of the Cloudflare dashboard.</p>
    <div>
      <h2>Background</h2>
      <a href="#background">
        
      </a>
    </div>
    <p>Most web browsers include a lock icon in the address bar. This icon is actually a button — if you’re a security advocate or a compulsive clicker (I’m both), you’ve probably clicked it before! Here’s what happens when you do just that in Google Chrome:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3XvfkfThYBIJKSknSrYtC/bc218dbd4886c16992917dc01042d9f0/image7.png" />
            
            </figure><p>This seems like good news. The Cloudflare blog has presented a valid certificate, your data is private, and everything is secure. But what does this actually mean?</p>
    <div>
      <h2>Certificates</h2>
      <a href="#certificates">
        
      </a>
    </div>
    <p>Your browser is performing some behind-the-scenes work to keep you safe. When you request a website (say, cloudflare.com), the website should present a certificate that proves its identity. This certificate is like a stamp of approval: it says that your connection is secure. In other words, the certificate proves that content was not intercepted or modified while in transit to you. An altered Cloudflare site would be problematic, especially if it looked like the actual Cloudflare site. Certificates protect us by including information about websites and their owners.</p><p>We pass around these certificates because <b>the honor system doesn’t work on the Internet</b>. If you want a certificate for your own website, just request one from a Certificate Authority (CA), or sign up for Cloudflare and we’ll do it for you! CAs issue certificates just as real-life notaries stamp legal documents. They confirm your identity, look over some data, and use their special status to grant you a digital certificate. Popular CAs include DigiCert, Let’s Encrypt, and Sectigo. This system has served us well because it has kept imposters in check, but also promoted trust between domain owners and their visitors.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6rSjggcosa2uxJsC5WHSq/f22de7e8f2fcf233037a18a3f69010c2/image12.png" />
            
            </figure><p>Unfortunately, nothing is perfect.</p><p>It turns out that CAs make mistakes. In rare cases, they become reckless. When this happens, <i>illegitimate</i> certificates are issued (even though they appear to be authentic). If a CA accidentally issues a certificate for your website, but you did <i>not</i> request the certificate, you have a problem. Whoever received the certificate might be able to:</p><ol><li><p>Steal login credentials from your visitors.</p></li><li><p>Interrupt your usual services by serving different content.</p></li></ol><p><a href="https://slate.com/technology/2016/12/how-the-2011-hack-of-diginotar-changed-the-internets-infrastructure.html">These attacks <i>do</i> happen</a>, so there’s good reason to care about certificates. More often, domain owners lose track of their certificates and panic when they discover unexpected certificates. We need a way to prevent these situations from ruining the entire system.</p>
    <div>
      <h2>Certificate Transparency</h2>
      <a href="#certificate-transparency">
        
      </a>
    </div>
    <p>Ah, Certificate Transparency (CT). CT solves the problem I just described by making all certificates public and easy to audit. When CAs issue certificates, they must submit certificates to at least two “public logs.” This means that collectively, the logs carry important data about all trusted certificates on the Internet. Several companies offer CT logs — Google has launched a few of its own. <a href="/introducing-certificate-transparency-and-nimbus/">We announced Cloudflare's Nimbus log last year</a>.</p><p>Logs are really, really big, and often hold hundreds of millions of certificate records.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5GbvFMP5eeaj2RWq6Yaxsf/a1055a89cd2f34496b18f5a71e7ad117/image1.png" />
            
            </figure><p>The log infrastructure helps browsers validate websites’ identities. When you request cloudflare.com in Safari or Google Chrome, the browser will actually require Cloudflare’s certificate to be registered in a CT log. If the certificate isn’t found in a log, you won’t see the lock icon next to the address bar. Instead, the browser will tell you that the website you’re trying to access is not secure. Are you going to visit a website marked “NOT SECURE”? Probably not.</p><p>There are systems that audit CT logs and report illegitimate certificates. Therefore, if your browser finds a valid certificate that is also trusted in a log, everything is secure.</p>
    <div>
      <h2>What We're Announcing Today</h2>
      <a href="#what-were-announcing-today">
        
      </a>
    </div>
    <p>Cloudflare has been an industry leader in CT. In addition to Nimbus, <a href="/a-tour-through-merkle-town-cloudflares-ct-ecosystem-dashboard/">we launched a CT dashboard called Merkle Town and explained how we made it.</a> Today, we’re releasing a public beta of Certificate Transparency Monitoring.</p><p>If you opt into CT Monitoring, we’ll send you an email whenever a certificate is issued for one of your domains. When you get an alert, don’t panic; we err on the side of caution by sending alerts whenever a possible domain match is found. Sometimes you may notice a suspicious certificate. Maybe you won’t recognize the issuer, or the subdomain is not one you offer (e.g. slowinternet.cloudflare.com). Alerts are sent quickly so you can contact a CA if something seems wrong.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5aHufY0b0kBy8dvmJ3dums/99a4d663cb449b11cfc697355ddb9bc1/image6.png" />
            
            </figure><p>This raises the question: if services already audit public logs, why are alerts necessary? Shouldn’t errors be found automatically? Well no, because auditing is not exhaustive. The best person to audit your certificates is <i>you</i>. You know your website. You know your personal information. Cloudflare will put relevant certificates right in front of you.</p><p>You can enable CT Monitoring on the Cloudflare dashboard. Just head over to the <a href="https://dash.cloudflare.com/?zone=crypto">Crypto Tab</a> and find the “Certificate Transparency Monitoring” card. You can always turn the feature off if you’re too popular in the CT world.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5nCWrURoHLrjcm1nScYuBR/12c998fde2cbffb1b68d63907db06c20/ct-free.png" />
            
            </figure><p>If you’re on a Business or Enterprise plan, you can tell us who to notify. Instead of emailing the zone owner (which we do for Free and Pro customers), we accept up to 10 email addresses as alert recipients. We do this to avoid overwhelming large teams. These emails do not have to be tied to a Cloudflare account and can be manually added or removed at any time.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6F3T0DoxkHboFcrAlluK9n/aca3ec4078c5e6745cfe41e70e51370c/ct-enterprise.png" />
            
            </figure>
    <div>
      <h2>How This Actually Works</h2>
      <a href="#how-this-actually-works">
        
      </a>
    </div>
    <p>Our Cryptography and SSL teams worked hard to make this happen; they built on the work of some clever tools mentioned earlier:</p><ul><li><p><a href="https://ct.cloudflare.com/">Merkle Town</a> is a hub for CT data. We process <i>all</i> trusted certificates and present relevant statistics on our website. This means that every certificate issued on the Internet passes through Cloudflare, and all the data is public (so no privacy concerns here).</p></li><li><p>Cloudflare Nimbus is our very own CT log. It contains more than 400 million certificates.</p></li></ul>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2B2hYIC9O5TDhAiESAODVG/383c7a9ab11fcdd7ad695b3c3c730943/image11.png" />
            
            </figure><p>Note: Cloudflare, Google, and DigiCert are not the only CT log providers.</p><p>So here’s the process... At some point in time, you (or an impostor) request a certificate for your website. A Certificate Authority approves the request and issues the certificate. Within 24 hours, the CA sends this certificate to a set of CT logs. This is where we come in: Cloudflare uses an internal process known as “The Crawler” to look through millions of certificate records. Merkle Town dispatches The Crawler to monitor CT logs and check for new certificates. When The Crawler finds a new certificate, it pulls the entire certificate through Merkle Town.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7r0eW4WoQeH64mvg354HO6/81ed08a9d6b3264a44ea74ce3694b8c3/image4.png" />
            
            </figure><p>When we process the certificate in Merkle Town, we also check it against a list of monitored domains. If you have CT Monitoring enabled, we’ll send you an alert immediately. This is only possible because of Merkle Town’s existing infrastructure. Also, The Crawler is ridiculously fast.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2NncFdAIyDlEDUo5BmKKZC/95ff61f627f90e9c56b58d8b8fa43b1a/image13.png" />
            
            </figure>
    <div>
      <h2>I Got a Certificate Alert. What Now?</h2>
      <a href="#i-got-a-certificate-alert-what-now">
        
      </a>
    </div>
    <p>Good question. Most of the time, certificate alerts are routine. Certificates expire and renew on a regular basis, so it’s totally normal to get these emails. If everything looks correct (the issuer, your domain name, etc.), go ahead and toss that email in the trash.</p><p>In rare cases, you might get an email that looks suspicious. <a href="https://support.cloudflare.com/hc/en-us/articles/360031379012">We provide a detailed support article that will help</a>. The basic protocol is this:</p><ol><li><p>Contact the CA (listed as “Issuer” in the email).</p></li><li><p>Explain <i>why</i> you think the certificate is suspicious.</p></li><li><p>The CA should revoke the certificate (if it really is malicious).</p></li></ol><p>We also have a friendly support team that can be reached <a href="https://support.cloudflare.com/hc/en-us/articles/200172476">here</a>. While Cloudflare is not at CA and cannot revoke certificates, our support team knows quite a bit about certificate management and is ready to help.</p>
    <div>
      <h2>The Future</h2>
      <a href="#the-future">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3yBCtqs81a22hZy4ri78Nb/f61cf359f273a3cbb7be0d7e763e1a86/image2.png" />
            
            </figure><p>Certificate Transparency has started making regular appearances on the Cloudflare blog. Why? It’s required by Chrome and Safari, <a href="http://gs.statcounter.com/">which dominate the browser market</a> and <a href="https://github.com/chromium/ct-policy">set precedents for Internet security</a>. But more importantly, CT can help us spot malicious certificates <i>before</i> they are used in attacks. This is why we will continue to refine and improve our certificate detection methods.</p><p>What are you waiting for? Go enable <a href="https://dash.cloudflare.com/?zone=crypto">Certificate Transparency Monitoring</a>!</p> ]]></content:encoded>
            <category><![CDATA[Product News]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[Certificate Transparency]]></category>
            <guid isPermaLink="false">35mDBlzR372BwHY48iYqK4</guid>
            <dc:creator>Ben Solomon</dc:creator>
        </item>
        <item>
            <title><![CDATA[End-to-End Integrity with IPFS]]></title>
            <link>https://blog.cloudflare.com/e2e-integrity/</link>
            <pubDate>Mon, 17 Sep 2018 13:02:00 GMT</pubDate>
            <description><![CDATA[ Use Cloudflare’s IPFS gateway to set up a website which is end-to-end secure, while maintaining the performance and reliability benefits of being served from Cloudflare’s edge network. ]]></description>
            <content:encoded><![CDATA[ <p>This post describes how to use Cloudflare's IPFS gateway to set up a website which is end-to-end secure, while maintaining the performance and reliability benefits of being served from Cloudflare’s edge network. If you'd rather read an introduction to the concepts behind IPFS first, you can find that in <a href="/distributed-web-gateway/">our announcement</a>. Alternatively, you could skip straight to the <a href="https://developers.cloudflare.com/distributed-web/">developer docs</a> to learn how to set up your own website.</p><p>By 'end-to-end security', I mean that neither the site owner nor users have to trust Cloudflare to serve the correct documents, like they do now. This is similar to how using HTTPS means you don't have to trust your ISP to not modify or inspect traffic.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6TAh0shMDYcLioHSrr05YS/9df521abdbf0ddc64596066f864466a4/ipfs-blog-post-image-1-copy_3.5x--1-.png" />
            
            </figure>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/75MIGMU5KJSYIZudpdJcNM/666111e79475ef39ca6701ad7e0cc27e/ipfs-blog-post-image-2-copy_3.5x--1-.png" />
            
            </figure>
    <div>
      <h3>CNAME Setup with Universal SSL</h3>
      <a href="#cname-setup-with-universal-ssl">
        
      </a>
    </div>
    <p>The first step is to choose a <a href="https://www.cloudflare.com/learning/dns/glossary/what-is-a-domain-name/">domain name</a> for your website. Websites should be given their own domain name, rather than served directly from the gateway by root hash, so that they are considered a distinct origin by the browser. This is primarily to prevent cache poisoning, but there are several functional advantages as well. It gives websites their own instance of localStorage and their own cookie jar which are sandboxed from inspection and manipulation by malicious third-party documents. It also lets them run Service Workers without conflict, and request special permissions of the user like access to the webcam or GPS. But most importantly, having a domain name makes a website easier to identify and remember.</p><p>Now that you've <a href="https://www.cloudflare.com/products/registrar/">chosen a domain</a>, rather than using it as-is, you’ll need to add "ipfs-sec" as the left-most subdomain. So for example, you'd use "ipfs-sec.example.com" instead of just "example.com". The ipfs-sec subdomain is special because it signals to the user and to their browser that your website is capable of being served with end-to-end integrity.</p><p>In addition to that, ipfs-sec domains require <a href="/dnssec-an-introduction/">DNSSEC</a> to be properly setup to prevent spoofing. Unlike with standard HTTPS, where DNS spoofing can't usually result in a on-path attacker attack, this is exactly what DNS spoofing does to IPFS because the root hash of the website is stored in DNS. Many <a href="https://www.cloudflare.com/learning/dns/glossary/what-is-a-domain-name-registrar/">registrars</a> make enabling DNSSEC as easy as the push of a button, though some don't support it at all.</p><p>With the ipfs-sec domain, you can now follow the <a href="https://developers.cloudflare.com/distributed-web/ipfs-gateway/connecting-website/">developer documentation</a> on how to serve a generic static website from IPFS. Note that you'll need to use a CNAME setup and retain control of your <a href="https://www.cloudflare.com/learning/dns/what-is-dns/">DNS</a>, rather than the easier method of just signing up for Cloudflare. This helps maintain a proper separation between the party managing the DNSSEC signing keys and the party serving content to end-users. Keep in mind that CNAME setups tend to be problematic and get into cases that are difficult to debug, which is why we reserve them for technically sophisticated customers.</p><p>You should now be able to access your website over HTTP and HTTPS, backed by our gateway.</p>
    <div>
      <h3>Verifying what the Gateway Serves</h3>
      <a href="#verifying-what-the-gateway-serves">
        
      </a>
    </div>
    <p>HTTPS helps makes sure that nobody between the user and Cloudflare's edge network has tampered with the connection, but it does nothing to make sure that Cloudflare actually serves the content the user asked for. To solve this, we built two connected projects: a modified gateway service and a browser extension.</p><p>First, we <a href="https://github.com/cloudflare/go-ipfs">forked the go-ipfs repository</a> and gave it the ability to offer cryptographic proofs that it was serving content honestly, which it will do whenever it sees requests with the HTTP header <code>X-Ipfs-Secure-Gateway: 1</code>. The simplest case for this is when users request a single file from the gateway by its hash -- all the gateway has to do is serve the content and any metadata that might be necessary to re-compute the given hash.</p><p>A more complicated case is when users request a file from a directory. Luckily, directories in IPFS are just files containing a mapping from file name to the hash of the file, and very large directories can be transparently split up into several smaller files, structured into a search tree called a <a href="https://idea.popcount.org/2012-07-25-introduction-to-hamt/">Hash Array Mapped Trie (HAMT)</a>. To convince the client that the gateway is serving the contents of the correct file, the gateway first serves the file corresponding to the directory, or every node in the search path if the directory is a HAMT. The client can hash this file (or search tree node), check that it equals the hash of the directory they asked for, and look up the hash of the file they want from within the directory's contents. The gateway then serves the contents of the requested file, which the client can now verify because it knows the expected hash.</p><p>Finally, the most complicated case by far is when the client wants to access content by domain name. It's complicated because the protocol for authenticating DNS, called DNSSEC, has very few client-side implementations. DNSSEC is also not widely deployed, even though some registrars make it even easier than setting up HTTPS. In the end, we ended up writing our own simple DNSSEC-validating resolver that's capable of outputting a cryptographically-convincing proof that it did some lookup correctly.</p><p>It works the same way as certificate validation in HTTPS: we start at the bottom, with a signature from some authority claiming to be example.com over the DNS records they want us to serve. We then lookup a delegation (DS record) from an authority claiming to be .com, that says "example.com is the authority with these public keys" which is in turn signed by the .com authority's private key. And finally, we lookup a delegation from the root authority, ICANN (whose public keys we already have), attesting to the public keys used by the .com authority. All of these lookups bundled together form an authenticated chain starting at ICANN and ending at the exact records we want to serve. These constitute the proof.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4qVP41QjM9flXihnLEj4CH/441ee5dd840fbac451e12854248da9cd/IPFS-tech-post-_3.5x.png" />
            
            </figure><p><i>Chain of trust in DNSSEC.</i></p><br /><p>The second project we built out was a browser extension that requests these proofs from IPFS gateways and ipfs-sec domains, and is capable of verifying them. The extension uses the <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest">webRequest API</a> to sit between the browser's network stack and its rendering engine, preventing any unexpected data from being show to the user or unexpected code from being executed. The code for the browser extension is <a href="https://github.com/cloudflare/ipfs-ext">available on Github</a>, and can be installed through <a href="https://addons.mozilla.org/en-US/firefox/addon/cloudflare-ipfs-validator/">Firefox's add-on store</a>. We’re excited to add support for Chrome as well, but that can’t move forward until <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=487422">this ticket</a> in their bug tracker is addressed.</p><p>On the other hand, if a user doesn't have the extension installed, the gateway won't see the <code>X-Ipfs-Secure-Gateway</code> header and will serve the page like a normal website, without any proofs. This provides a graceful upgrade path to using IPFS, either through our extension that uses a third-party gateway or perhaps another browser extension that runs a proper IPFS node in-browser.</p>
    <div>
      <h3>Example Application</h3>
      <a href="#example-application">
        
      </a>
    </div>
    <p>My favorite website on IPFS so far has been the <a href="https://cloudflare-ipfs.com/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/">mirror of English Wikipedia</a> put up by <a href="https://ipfs.io/blog/24-uncensorable-wikipedia/">the IPFS team at Protocol Labs</a>. It's fast, fun to play with, and above all has practical utility. One problem that stands out though, is that the mirror has no search feature so you either have to know the URL of the page you want to see or try to find it through Google. The <a href="https://ipfs.io/ipfs/QmT5NvUtoM5nWFfrQdVrFtvGfKFmG7AHE8P34isapyhCxX/wiki/Anasayfa.html">Turkish-language mirror</a> has in-app search but it requires a call to a dynamic API on the same host, and doesn't work through Cloudflare's gateway because we only serve static content.</p><p>I wanted to provide an example of the kinds of secure, performant applications that are possible with IPFS, and this made building a search engine seem like a prime candidate. Rather than steal Protocol Labs' idea of 'Wikipedia on IPFS', we decided to take the <a href="http://www.kiwix.org/">Kiwix</a> archives of all the different StackExchange websites and build a distributed search engine on top of that. You can play with the finished product here: <a href="https://ipfs-sec.stackexchange.cloudflare-ipfs.com">ipfs-sec.stackexchange.cloudflare-ipfs.com</a>.</p><p>The way it's built is actually really simple, at least as far as search engines go: We build an inverted index and publish it with the rest of each StackExchange, along with a JavaScript client that can read the index and quickly identify documents that are relevant to a user's query. Building the index takes two passes over the data:</p><ol><li><p>The first pass decides what words/tokens we want to allow users to search by. Tokens shouldn't be too popular (like the top 100 words in English), because then the list of all documents containing that token is going to be huge and it's not going to improve the search results anyways. They also shouldn't be too rare (like a timestamp with sub-second-precision), because then the index will be full of meaningless tokens that occur in only one document each. You can get a good estimate of the most frequent K tokens, using only constant-space, with the really simple space-saving algorithm from <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.114.9563&amp;rep=rep1&amp;type=pdf">this paper</a>.</p></li><li><p>Now that the first pass has given us the tokens we want to track, the second pass through the data actually builds the inverted index. That is, it builds a map from every token to the list of documents that contain that token, called a postings list. When a client wants to find only documents that contain some set of words/tokens, they download the list for each individual token and intersect them. It sounds less efficient than it is -- in reality, the postings lists are unnoticeably small (&lt;30kb) even in the worst case. And the browser can 'pipeline' the requests for the postings lists (meaning, send them all off at once) which makes getting a response to several requests about as fast as getting a response to one.</p></li></ol><p>We also store some simple statistics in each postings list to help rank the results. Essentially, documents that contain a query token more often are ranked higher than those that don't. And among the tokens in a query, those tokens that occur in fewer documents have a stronger effect on ranking than tokens that occur in many documents. That's why when I search for <a href="https://ipfs-sec.stackexchange.cloudflare-ipfs.com/crypto/search.html?q=AES+SIV">"AES SIV"</a> the first result that comes back is:</p><ul><li><p><a href="https://ipfs-sec.stackexchange.cloudflare-ipfs.com/crypto/A/question/54413.html">"Why is SIV a thing if MAC-and-encrypt is not the most secure way to go?"</a></p></li></ul><p>while the following is the fourth result, even though it has a higher score and greater number of total hits than first result:</p><ul><li><p><a href="https://ipfs-sec.stackexchange.cloudflare-ipfs.com/crypto/A/question/31835.html">"Why is AES-SIV not used, but AESKW, AKW1?"</a></p></li></ul><p>(AES is a very popular and frequently discussed encryption algorithm, while SIV is a lesser-known way of using AES.)</p><p>But this is what really makes it special: because the search index is stored in IPFS, the user can convince themselves that no results have been modified, re-arranged, or omitted without having to download the entire corpus. There's one small trick to making this statement hold true: All requests made by the search client must succeed, and if they don't, it outputs an error and no search results.</p><p>To understand why this is necessary, think about the search client when it first gets the user's query. It has to tokenize the query and decide which postings lists to download, where not all words in the user's query may be indexed. A naive solution is to try to download the postings list for every word unconditionally, and interpret a non-200 HTTP status code as "this postings list must not exist". In this case, a network adversary could block the search client from being able to access postings lists that lead to undesirable results, causing the client to output misleading search results either through omission or re-arranging.</p><p>What we do instead is store the dictionary of every indexed token in a file in the root of the index. The client can download the dictionary once, cache it, and use it for every search afterwards. This way, the search client can consult the dictionary to find out which requests should succeed and only send those.</p>
    <div>
      <h3>From Here</h3>
      <a href="#from-here">
        
      </a>
    </div>
    <p>We were incredibly excited when we realized the new avenues and types of applications that combining IPFS with Cloudflare open up. Of course, our IPFS gateway and the browser extension we built will need time to mature into a secure and reliable platform. But the ability to securely deliver web pages through third-party hosting providers and CDNs is incredibly powerful, and its something cryptographers and internet security professionals have been working towards for a long time. As much fun as we had building it, we're even more excited to see what you build with it.</p><p><a href="/subscribe/"><i>Subscribe to the blog</i></a><i> for daily updates on our announcements.</i></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/Zg5pDJxaCCTQXzqquORuu/1a2f514eff601ee0f88f245945a3ea54/CRYPTO-WEEK-banner-plus-logo_2x.png" />
            
            </figure><p></p> ]]></content:encoded>
            <category><![CDATA[Crypto Week]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[IPFS]]></category>
            <category><![CDATA[Universal SSL]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[DNSSEC]]></category>
            <category><![CDATA[Cryptography]]></category>
            <guid isPermaLink="false">2ZSYs23n0hZhgRFnzpS5O1</guid>
            <dc:creator>Brendan McMillion</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare goes InterPlanetary - Introducing Cloudflare’s IPFS Gateway]]></title>
            <link>https://blog.cloudflare.com/distributed-web-gateway/</link>
            <pubDate>Mon, 17 Sep 2018 13:01:00 GMT</pubDate>
            <description><![CDATA[ Today we’re excited to introduce Cloudflare’s IPFS Gateway, an easy way to access content from the the InterPlanetary File System (IPFS) that doesn’t require installing and running any special software on your computer. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Today we’re excited to introduce Cloudflare’s IPFS Gateway, an easy way to access content from the InterPlanetary File System (IPFS) that doesn’t require installing and running any special software on your computer. We hope that our gateway, hosted at <a href="https://cloudflare-ipfs.com">cloudflare-ipfs.com</a>, will serve as the platform for many new highly-reliable and security-enhanced web applications. The IPFS Gateway is the first product to be released as part of our <a href="https://www.cloudflare.com/distributed-web-gateway">Distributed Web Gateway</a> project, which will eventually encompass all of our efforts to support new distributed web technologies.</p><p>This post will provide a brief introduction to IPFS. We’ve also written an accompanying blog post <a href="/e2e-integrity">describing what we’ve built</a> on top of our gateway, as well as <a href="https://developers.cloudflare.com/distributed-web/">documentation</a> on how to serve your own content through our gateway with your own custom hostname.</p>
    <div>
      <h3>Quick Primer on IPFS</h3>
      <a href="#quick-primer-on-ipfs">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3hS4Q3j1BBgCA4If6fFImz/d25f3b24017cb8dfcfa9208a68f8ed03/spaaaace-ipfs_3.5x-1.png" />
            
            </figure><p>Usually, when you access a website from your browser, your browser tracks down the origin server (or servers) that are the ultimate, centralized repository for the website’s content. It then sends a request from your computer to that origin server, wherever it is in the world, and that server sends the content back to your computer. This system has served the Internet well for decades, but there’s a pretty big downside: centralization makes it impossible to keep content online any longer than the origin servers that host it. If that origin server is hacked or taken out by a natural disaster, the content is unavailable. If the site owner decides to take it down, the content is gone. In short, mirroring is not a first-class concept in most platforms (<a href="https://www.cloudflare.com/always-online/">Cloudflare’s Always Online</a> is a notable exception).</p><p>The InterPlanetary File System aims to change that. IPFS is a peer-to-peer file system composed of thousands of computers around the world, each of which stores files on behalf of the network. These files can be anything: cat pictures, 3D models, or even entire websites. Over 5,000,000,000 files had been uploaded to <a href="https://cloudflare-ipfs.com/ipfs/QmWimYyZHzChb35EYojGduWHBdhf9SD5NHqf8MjZ4n3Qrr/Filecoin-Primer.7-25.pdf">IPFS already</a>.</p>
    <div>
      <h3>IPFS vs. Traditional Web</h3>
      <a href="#ipfs-vs-traditional-web">
        
      </a>
    </div>
    <p>There are two key differences between IPFS and the web as we think of it today.</p><p>The first is that with IPFS anyone can cache and serve any content—for free. Right now, with the traditional web, most typically rely on big hosting providers in remote locations to store content and serve it to the rest of the web. If you want to set up a website, you have to pay one of these major services to do this for you. With IPFS, anyone can sign up their computer to be a node in the system and start serving data. It doesn’t matter if you’re working on a Raspberry Pi or running the world’s biggest server. You can still be a productive node in the system.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/66pmjeMDzYrBDczI8gesbH/8b9b8588bd3bf911aa71bc5e87bbd671/Decentralized-Network-1.png" />
            
            </figure><p>The second key difference is that data is content-addressed, rather than location-addressed. That’s a bit of a subtle difference, but the ramifications are substantial, so it’s worth breaking down.</p><p>Currently, when you open your browser and navigate to example.com, you’re telling the browser “fetch me the data stored at example.com’s IP address” (this happens to be 93.184.216.34). That IP address marks where the content you want is stored in the network. You then send a request to the server at that IP address for the “example.com” content and the server sends back the relevant information. So at the most basic level, you tell the network where to look and the network sends back what it found.</p><p>IPFS turns that on its head.</p><p>With IPFS, every single block of data stored in the system is addressed by a cryptographic hash of its contents, i.e., a long string of letters and numbers that is unique to that block. When you want a piece of data in IPFS, you request it by its hash. So rather than asking the network “get me the content stored at 93.184.216.34,” you ask “get me the content that has a hash value of <code>QmXnnyufdzAWL5CqZ2RnSNgPbvCc1ALT73s6epPrRnZ1Xy</code>.” (<code>QmXnnyufdzAWL5CqZ2RnSNgPbvCc1ALT73s6epPrRnZ1Xy</code> happens to be the hash of a .txt file containing the string “I’m trying out IPFS”).</p>
    <div>
      <h3>How is this so different?</h3>
      <a href="#how-is-this-so-different">
        
      </a>
    </div>
    <p>Remember that with IPFS, you tell the network what to look for, and the network figures out where to look.</p>
    <div>
      <h3>Why does this matter?</h3>
      <a href="#why-does-this-matter">
        
      </a>
    </div>
    <p>First off, it makes the network more resilient. The content with a hash of <code>QmXnnyufdzAWL5CqZ2RnSNgPbvCc1ALT73s6epPrRnZ1Xy</code> could be stored on dozens of nodes, so if one node that was caching that content goes down, the network will just look for the content on another node.</p><p>Second, it introduces an automatic level of security. Let’s say you know the hash value of a file you want. So you ask the network, “get me the file with hash <code>QmXnnyufdzAWL5CqZ2RnSNgPbvCc1ALT73s6epPrRnZ1Xy</code>” (the example.txt file from above). The network responds and sends the data. When you receive all the data, you can rehash it. If the data was changed at all in transit, the hash value you get will be different than the hash you asked for. You can think of the hash as like a unique fingerprint for the file. If you’re sent back a different file than you were expecting to receive, it’s going to have a different fingerprint. This means that the system has a built-in way of knowing whether or not content has been tampered with.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/14TxfLu3bArvharLWoFCJY/64e2fadd810da7c0a51149d8f71a9f95/ipfs-blog-post-image-1-copy_3.5x.png" />
            
            </figure>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4hO98vSSGsM8wh0r4w10GO/d4c1d501a571e241c1632a4645cfc8a3/ipfs-blog-post-image-2-copy_3.5x.png" />
            
            </figure>
    <div>
      <h3></h3>
      <a href="#">
        
      </a>
    </div>
    <p>A Note on IPFS Addresses and Cryptographic Hashes</p><p>Since we’ve spent some time going over why this content-addressed system is so special, it’s worth talking a little bit about how the IPFS addresses are built. Every address in IPFS is a <a href="https://github.com/multiformats/multihash">multihash</a>, which means that the address combines information about both the hashing algorithm used and the hash output into one string. IPFS multihashes have three distinct parts: the first byte of the mulithash indicates which hashing algorithm has been used to produce the hash; the second byte indicates the length of the hash; and the remaining bytes are the value output by the hash function. By default, IPFS uses the <a href="https://en.wikipedia.org/wiki/SHA-2">SHA-256</a> algorithm, which produces a 32-byte hash. This is represented by the string “Qm” in <a href="https://en.wikipedia.org/wiki/Base58">Base58</a> (the default encoding for IPFS addresses), which is why all the example IPFS addresses in this post are of the form “Qm…”.</p><p>While SHA-256 is the standard algorithm used today, this multihash format allows the IPFS protocol to support addresses produced by other hashing algorithms. This allows the IPFS network to move to a different algorithm, should the world discover flaws with SHA-256 sometime in the future. If someone hashed a file with another algorithm, the address of that file would start some characters other than “Qm”.</p><p>The good news is that, at least for now, SHA-256 is believed to have a number of qualities that make it a strong cryptographic hashing algorithm. The most important of these is that SHA-256 is collision resistant. A collision occurs when there are two different files that produce the same hash when run through the SHA-256 algorithm. To understand why it’s important to prevent collisions, consider this short scenario. Imagine some IPFS user, Alice, uploads a file with some hash, and another user, Bob, uploads a different file that happens to produce the exact same hash. If this happened, there would be two different files in the network with the exact same address. So if some third person, Carol, sent out an IPFS request for the content at that address, she wouldn't necessarily know whether she was going to receive Bob’s file or Alice’s file.</p><p>SHA-256 makes collisions extremely unlikely. Because SHA-256 computes a 256-bit hash, there are 2^256 possible IPFS addresses that the algorithm could produce. Hence, the chance that there are two files in IPFS that produce a collision is low. Very low. If you’re interested in more details, the <a href="https://en.wikipedia.org/wiki/Birthday_attack#Mathematics">birthday attack</a> Wikipedia page has a cool table showing exactly how unlikely collisions are, given a sufficiently strong hashing algorithm.</p>
    <div>
      <h3>How exactly do you access content on IPFS?</h3>
      <a href="#how-exactly-do-you-access-content-on-ipfs">
        
      </a>
    </div>
    <p>Now that we’ve walked through all the details of what IPFS is, you’re probably wondering how to use it. There are a number of ways to access content that’s been stored in the IPFS network, but we’re going to address two popular ones here. The first way is to download IPFS onto your computer. This turns your machine into a node of the IPFS network, and it’s the best way to interact with the network if you want to get down in the weeds. If you’re interested in playing around with IPFS, the Go implementation can be downloaded <a href="https://ipfs.io/docs/install/">here</a>.</p><p>But what if you want access to content that’s stored on IPFS without the hassle of operating a node locally on your machine? That’s where IPFS gateways come into play. IPFS gateways are third-party nodes that fetch content from the IPFS network and serve it to you over <a href="https://www.cloudflare.com/learning/ssl/what-is-https/">HTTPS</a>. To use a gateway, you don’t need to download any software or type any code. You simply open up a browser and type in the gateway’s name and the hash of the content you’re looking for, and the gateway will serve the content in your browser.</p><p>Say you know you want to access the example.txt file from before, which has the hash <code>QmXnnyufdzAWL5CqZ2RnSNgPbvCc1ALT73s6epPrRnZ1Xy</code>, and there’s a public gateway that is accessible at <code>https://example-gateway.com</code></p><p>To access that content, all you need to do is open a browser and type</p>
            <pre><code>https://example-gateway.com/ipfs/QmXnnyufdzAWL5CqZ2RnSNgPbvCc1ALT73s6epPrRnZ1Xy</code></pre>
            <p>and you’ll get back the data stored at that hash. The combination of the /ipfs/ prefix and the hash is referred to as the file path. You always need to provide a full file path to access content stored in IPFS.</p>
    <div>
      <h3>What can you do with Cloudflare’s Gateway?</h3>
      <a href="#what-can-you-do-with-cloudflares-gateway">
        
      </a>
    </div>
    <p>At the most basic level, you can access any of the billions of files stored on IPFS from your browser. But that’s not the only cool thing you can do. Using Cloudflare’s gateway, you can also build a website that’s hosted entirely on IPFS, but still available to your users at a custom domain name. Plus, we’ll issue any website connected to our gateway a <a href="https://www.cloudflare.com/application-services/products/ssl/">free SSL certificate</a>, ensuring that each website connected to Cloudflare's gateway is secure from snooping and manipulation. For more on that, check out the <a href="https://developers.cloudflare.com/distributed-web/">Distributed Web Gateway developer docs</a>.</p><p>A fun example we’ve put together using the <a href="http://www.kiwix.org/">Kiwix</a> archives of all the different StackExchange websites and build a distributed search engine on top of that using only IPFS. Check it out <a href="https://ipfs-sec.stackexchange.cloudflare-ipfs.com/">here</a>.</p>
    <div>
      <h3>Dealing with abuse</h3>
      <a href="#dealing-with-abuse">
        
      </a>
    </div>
    <p>IPFS is a peer-to-peer network, so there is the possibility of users sharing abusive content. This is not something we support or condone. However, just like how Cloudflare works with more traditional customers, Cloudflare’s IPFS gateway is simply a cache in front of IPFS. Cloudflare does not have the ability to modify or remove content from the IPFS network. If any abusive content is found that is served by the Cloudflare IPFS gateway, you can use the standard abuse reporting mechanism described <a href="https://www.cloudflare.com/abuse/">here</a>.</p>
    <div>
      <h3>Embracing a distributed future</h3>
      <a href="#embracing-a-distributed-future">
        
      </a>
    </div>
    <p>IPFS is only one of a family of technologies that are embracing a new, decentralized vision of the web. Cloudflare is excited about the possibilities introduced by these new technologies and we see our gateway as a tool to help bridge the gap between the traditional web and the new generation of distributed web technologies headlined by IPFS. By enabling everyday people to explore IPFS content in their browser, we make the ecosystem stronger and support its growth. Just like when Cloudflare launched back in 2010 and changed the game for web properties by providing the <a href="https://www.cloudflare.com/security/">security</a>, <a href="https://www.cloudflare.com/performance/">performance</a>, and <a href="https://www.cloudflare.com/performance/ensure-application-availability/">availability</a> that was previously only available to the Internet giants, we think the IPFS gateway will provide the same boost to content on the distributed web.</p><p>Dieter Shirley, CTO of Dapper Labs and Co-founder of CryptoKitties said the following:</p><blockquote><p>We’ve wanted to store CryptoKitty art on IPFS since we launched, but the tech just wasn’t ready yet. Cloudflare’s announcement turns IPFS from a promising experiment into a robust tool for commercial deployment. Great stuff!</p></blockquote><p>The IPFS gateway is exciting, but it’s not the end of the road. There are other equally interesting distributed web technologies that could benefit from Cloudflare’s massive global network and we’re currently exploring these possibilities. If you’re interested in helping build a better internet with Cloudflare, <a href="https://www.cloudflare.com/careers/"><b>we’re hiring!</b></a></p><p><a href="/subscribe/"><i>Subscribe to the blog</i></a><i> for daily updates on our announcements.</i></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2kIF9JJRHMU2pmS0vA2xbc/4261d639ac630d4c0f55e676621ddd51/Crypto-Week-1-1.png" />
            
            </figure> ]]></content:encoded>
            <category><![CDATA[Crypto Week]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[IPFS]]></category>
            <category><![CDATA[Universal SSL]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[DNSSEC]]></category>
            <category><![CDATA[HTTPS]]></category>
            <category><![CDATA[Research]]></category>
            <category><![CDATA[Cryptography]]></category>
            <guid isPermaLink="false">3gBDsqNt0ufJh5O7aQBBxd</guid>
            <dc:creator>Andy Parker</dc:creator>
        </item>
        <item>
            <title><![CDATA[Going Proactive on Security: Driving Encryption Adoption Intelligently]]></title>
            <link>https://blog.cloudflare.com/being-proactive/</link>
            <pubDate>Tue, 24 Jul 2018 17:32:43 GMT</pubDate>
            <description><![CDATA[ It's no secret that Cloudflare operates at a huge scale. Cloudflare provides security and performance to over 9 million websites all around the world, from small businesses and WordPress blogs to Fortune 500 companies. That means one in every 10 web requests goes through our network. ]]></description>
            <content:encoded><![CDATA[ <p>It's no secret that Cloudflare operates at a huge scale. Cloudflare provides security and performance to over 9 million websites all around the world, from small businesses and WordPress blogs to Fortune 500 companies. That means one in every 10 web requests goes through our network.</p><p>However, hidden behind the scenes, we offer support in using our platform to all our customers - whether they're on our free plan or on our Enterprise offering. This blog post dives into some of the technology that helps make this possible and how we're using it to drive encryption and build a better web.</p>
    <div>
      <h3>Why Now?</h3>
      <a href="#why-now">
        
      </a>
    </div>
    <p>Recently web browser vendors have been working on extending encryption on the internet. Traditionally they would use positive indicators to mark encrypted traffic as secure; when traffic was served securely over HTTPS, a green padlock would indicate in your browser that this was the case. In moving to standardise encryption online, Google Chrome have been leading the charge in marking insecure page loads as "Not Secure". Today, this UI change has been pushed out to all Google Chrome users globally for all websites: any website loaded over HTTP will be marked as insecure.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4kSP68dcfVP7ZePmZVcX5m/52364a548f6f0540eb2b39d04edc41ac/chrome68.png" />
            
            </figure><p>That's not all though; all resources loaded by a website need to be loaded over HTTPS and such sites need to be configured properly to avoid mixed-content warnings, not to mention correctly configuring secure cryptography at the web server. Cloudflare helped bring widespread adoption of HTTPS to the internet by offering <a href="https://www.cloudflare.com/application-services/products/ssl/">free of charge SSL certificates</a>; in doing so we've become experts at knowing where web developers trip up in configuring HTTPS on their websites. HTTPS is now important for everyone who builds on the web, not just those with an interest in cryptography.</p>
    <div>
      <h3>Meet HelperBot</h3>
      <a href="#meet-helperbot">
        
      </a>
    </div>
    <p>In recent months, we’ve taken this expertise to help our Cloudflare customers avoid common mistakes. One of things me and my team have been working on building has been intelligent systems which automatically triage support tickets and present relevant debugging information upfront to the agent assigned to the ticket.</p><p>We use a custom-build Natural Language Processing model to determine the issues related to what the customer is discussing, and then we run technical tests in a Chain-of-Responsibility (with the most relevant to the customer running first) to determine what's going wrong. We then automatically triage the ticket and present this information to the support agent in the ticket.</p><p>Here's an example of a piece of the information we present upfront:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5NpVZj6VaEibiI2EjHoWwE/e0d7c8520532f96ff1770fb7a928f58a/Screen-Shot-2018-07-20-at-22.32.15.png" />
            
            </figure><p>Whilst we initially manually built automated debugging tests, we soon used Search Based Software Engineering strategies to self-write debugging automations based on various data points (such as the underlying technologies powering a site, their configuration or their error rates). When we detect anomalies, we are able to present this information upfront to our support agents to reduce the manual debugging they must conduct. In essence, we are able to get the software to write itself from test behaviour, within reason.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7DyM6G9zIBhPfuHQKGLrYV/700d3be7e165f2bb67f111e786aca410/Screen-Shot-2018-07-20-at-22.32.26.png" />
            
            </figure><p>Whilst this data is largely mostly internally used; we are starting to A/B test new versions of our support ticket submission form which present a subset of this information upfront to users before they write into us - allowing them to the answers to their problem quicker.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2Ai05dz42OOzBvTPyZbKCB/f5a3457bf73ef074f847680ab19c31e3/Screen-Shot-2018-07-20-at-22.42.01.png" />
            
            </figure>
    <div>
      <h3>Being Proactive About Security</h3>
      <a href="#being-proactive-about-security">
        
      </a>
    </div>
    <p>To help drive adoption of a more secure internet - and drive down common misconfigurations of SSL - we have started testing emailing customers proactively about Mixed Content errors and Redirect Loops associated with HTTPS web server misconfigurations.</p><p>By joining forces with our Marketing team, we were able to run an ongoing campaign of testing user behaviour to proactive security advice. Users receive messages similar to the one below.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7iIYIvaExMtNBkBPxwqdyU/b432461153c27b5dead0a9773320d300/Screen-Shot-2018-07-20-at-22.49.18.png" />
            
            </figure><p>With this capability, we decided to expose the functionality to a wider audience, including those not already using Cloudflare.</p>
    <div>
      <h3>SSL Test Tool (Powered by HelperBot-External)</h3>
      <a href="#ssl-test-tool-powered-by-helperbot-external">
        
      </a>
    </div>
    
            <figure>
            <a href="https://www.cloudflare.com/lp/ssl-test?utm_medium=website&amp;utm_source=blog&amp;utm_campaign=chrome68">
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3z3r2uTJBYPDFo2AXJ2Lla/bcdc986185ffaff6959524f32943e3b0/Screen-Shot-2018-07-21-at-00.53.26.png" />
            </a>
            </figure><p>To help website owners make the transition to HTTPS, we've launched <a href="https://www.cloudflare.com/lp/ssl-test?utm_medium=website&amp;utm_source=blog&amp;utm_campaign=chrome68">the SSL Test Tool</a>. We internally codenamed the backend as HelperBot-External, after the internal HelperBot service. We decided to take a subset of the SSL tests we use internally and allow someone to run a basic version of the scan on their own site. This helps users understand what they need to do to move their site to HTTPS by detecting the most common issues. By doing so, we seek to help users who are struggling to get over the line in enabling HTTPS on their sites by providing them some dynamic guidance in a plain-English fashion.</p><p>The tool runs 12 tests across three key categories of errors: HTTPS Disabled, Client Errors and Cryptography Errors. Unlike other tools, these are tests are based on the questions we see real users ask about their SSL configuration and the tasks they most struggle with. This is a tool designed to support all web developers in enabling HTTPS, not just those with an interest in cryptography. For example; by educating users about mixed content errors, we are able to make the case for them enabling HTTPS Strict Transport Security, thereby <a href="https://www.cloudflare.com/learning/security/glossary/website-security-checklist/">improving the security practices</a> they adopt.</p><p>Further; these tests are available to everyone. We believe it’s important that the entire Internet be safer, not only for our customers and their visitors (although, admittedly, Cloudflare’s SSL and crypto features make it very simple to be HTTPS-ready).</p>
    <div>
      <h3>Conclusion: Just the Beginning</h3>
      <a href="#conclusion-just-the-beginning">
        
      </a>
    </div>
    <p>As we grow our intelligence capabilities; we do so to provide better performance and security to our customers. We want build a better internet and make our users more successful on our platform. Whilst there's still plenty of ground left to cover in building out our intelligent capability for supporting customers, we're developing rapidly and focussed on using those skills to improve things our customers care about.</p> ]]></content:encoded>
            <category><![CDATA[HTTPS]]></category>
            <category><![CDATA[Chrome]]></category>
            <category><![CDATA[SSL]]></category>
            <category><![CDATA[Support]]></category>
            <category><![CDATA[Security]]></category>
            <guid isPermaLink="false">7ipQzFpDytxabYUE49T7jE</guid>
            <dc:creator>Junade Ali</dc:creator>
        </item>
    </channel>
</rss>