<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Web on Ctrl &#43; Champagne</title>
    <link>/tags/web/</link>
    <description>Recent content in Web on Ctrl &#43; Champagne</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 03 Apr 2025 13:45:56 +0000</lastBuildDate>
    <atom:link href="/tags/web/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>The Poor Man&#39;s Load Balancer</title>
      <link>/posts/dnslb/</link>
      <pubDate>Thu, 03 Apr 2025 13:45:56 +0000</pubDate>
      <guid>/posts/dnslb/</guid>
      <description>&lt;h2 id=&#34;domain-name-system-traffic-distribution-on-a-budget&#34;&gt;Domain Name System: traffic distribution on a budget&lt;/h2&gt;&#xA;&lt;h3 id=&#34;its-not-magic&#34;&gt;It&amp;rsquo;s not magic&lt;/h3&gt;&#xA;&lt;p&gt;What happens when you type &lt;code&gt;leane.dev&lt;/code&gt; in&#xA;your browser?&lt;/p&gt;&#xA;&lt;p&gt;As a regular reader of this blog, I am allowing myself to take your &lt;em&gt;everyday&lt;/em&gt; example.&lt;/p&gt;&#xA;&lt;p&gt;You want to access the server hosting this blog, but how do you reach it? On the Internet, routing&#xA;is done by finding the path to a given Internet Protocol - IP. Thing is: you don&amp;rsquo;t know my IP,&#xA;not directly. It&amp;rsquo;s easier to remember the hostname: leane.dev. Yet, the browser manages to display&#xA;the blog to you.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automating Digital Certificates renewal</title>
      <link>/posts/digitcert/</link>
      <pubDate>Tue, 11 Feb 2025 13:45:56 +0000</pubDate>
      <guid>/posts/digitcert/</guid>
      <description>&lt;h2 id=&#34;kubernetes-cert-manager-for-letsencrypt-certificates&#34;&gt;Kubernetes cert-manager for LetsEncrypt certificates&lt;/h2&gt;&#xA;&lt;h3 id=&#34;digital-certificates-raison-dêtre-and-usage&#34;&gt;Digital Certificates raison d&amp;rsquo;être and usage&lt;/h3&gt;&#xA;&lt;p&gt;Certificates are exchanged as part of the TLS handshake.&#xA;This allows the client to ensure the entity it is trying to establish a connection with is authentically the &lt;em&gt;genuine&lt;/em&gt; server.&lt;/p&gt;&#xA;&lt;p&gt;Note: see other posts under this tag for a few words on TLS handshakes and mentions of the attacks it protects against.&lt;/p&gt;&#xA;&lt;p&gt;A certificate contains: the issuer details, its expiration date, the entity&amp;rsquo;s public key for asymmetric encryption and a signature (encrypted server&amp;rsquo;s public key).&lt;/p&gt;</description>
    </item>
    <item>
      <title>The QUICk brown fox jumps over the lazy dog</title>
      <link>/posts/quic/</link>
      <pubDate>Mon, 10 Feb 2025 13:45:56 +0000</pubDate>
      <guid>/posts/quic/</guid>
      <description>&lt;h2 id=&#34;the-fast-alternative-to-tcptls&#34;&gt;The &lt;em&gt;fast&lt;/em&gt; alternative to TCP+TLS&lt;/h2&gt;&#xA;&lt;h3 id=&#34;what-is-quic&#34;&gt;What is QUIC?&lt;/h3&gt;&#xA;&lt;p&gt;The Quick UDP Internet Connection (QUIC) protocol is an encrypted connection protocol operating on the Layer 4 - Transport Layer of the OSI model.&lt;/p&gt;&#xA;&lt;p&gt;Developed at Google around 2012, it has only been adopted as a standard by IETF in 2021.&lt;/p&gt;&#xA;&lt;p&gt;The current and widely used solution of HTTPS using TLS is built is on top of the TCP protocol.&#xA;The &lt;a href=&#34;https://en.wikipedia.org/wiki/Transmission_Control_Protocol&#34;&gt;TCP handshake&lt;/a&gt; and the &lt;a href=&#34;https://en.wikipedia.org/wiki/Transport_Layer_Security&#34;&gt;TLS handshake&lt;/a&gt; need to be completed to establish a path to communicate between a server and a client.&#xA;As a result, multiple rounds trips to initiate a connection and negotiate the encryption parameters are required - two at the very least, depending on the TLS version used.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HSTS &amp; .dev domain</title>
      <link>/posts/hsts/</link>
      <pubDate>Sat, 08 Feb 2025 13:45:56 +0000</pubDate>
      <guid>/posts/hsts/</guid>
      <description>&lt;h2 id=&#34;a-brief-overview-of-hsts-protocol-or-why-i-chose-the-dev-domain&#34;&gt;A brief overview of HSTS protocol or why I chose the .dev domain&lt;/h2&gt;&#xA;&lt;h3 id=&#34;quick-intro&#34;&gt;Quick intro&lt;/h3&gt;&#xA;&lt;p&gt;What happens when you&amp;rsquo;re back from a family weekend in a cabin in the woods with no internet?&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;d probably check my dog&amp;rsquo;s instagram account first.&#xA;On the browser: instagram.com and &amp;hellip; my browser is making a call to &lt;code&gt;http://instagram.com&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Exactly! I haven&amp;rsquo;t explicitly used &lt;code&gt;https&lt;/code&gt;, so where does this leave me? Exposed to all sorts of man-in-the-middle attacks that wikipedia can list for us in a scary way - &lt;a href=&#34;https://en.wikipedia.org/wiki/Session_hijacking%22&#34;&gt;session hijacking&lt;/a&gt;, &lt;a href=&#34;https://en.wikipedia.org/wiki/Downgrade_attack&#34;&gt;protocol downgrade attack&lt;/a&gt;, etc.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
