<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/">
  <channel>
    <title>Certificates</title>
    <link>https://www.linuxjournal.com/</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>Understanding Public Key Infrastructure and X.509 Certificates</title>
  <link>https://www.linuxjournal.com/content/understanding-public-key-infrastructure-and-x509-certificates</link>
  <description>  &lt;div data-history-node-id="1340425" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/jeff-woods" lang="" about="https://www.linuxjournal.com/users/jeff-woods" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Jeff Woods&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;An introduction to PKI, TLS and X.509, from the ground up.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
Public Key Infrastructure (PKI) provides a framework of encryption and data
communications standards used to secure communications over public networks.
At the heart of PKI is a trust built among clients, servers and certificate
authorities (CAs). This trust is established and propagated through the
generation, exchange and verification of certificates.
&lt;/p&gt;

&lt;p&gt;
This article focuses on understanding the certificates used to establish
trust between clients and servers. These certificates are the most visible
part of the PKI (especially when things break!), so understanding them will
help to make sense of—and correct—many common errors.
&lt;/p&gt;

&lt;p&gt;
As a brief introduction, imagine you want to connect to your bank to
schedule a bill payment, but you want to ensure that your communication is secure.
"Secure" in this context means not only that the content remains
confidential, but also that the server with which you're communicating actually
belongs to your bank.
&lt;/p&gt;

&lt;p&gt;
Without protecting your information in transit, someone located between you
and your bank could observe the credentials you use to log in to the server,
your account information, or perhaps the parties to which your payments are
being sent. Without being able to confirm the identity of the server, you
might be surprised to learn that you are talking to an impostor (who now has
access to your account information).
&lt;/p&gt;

&lt;p&gt;
Transport layer security (TLS) is a suite of protocols used to negotiate a
secured connection using PKI. TLS builds on the SSL standards of the late
1990s, and using it to secure client to server connections on the internet has
become ubiquitous. Unfortunately, it remains one of the least understood
technologies, with errors (often resulting from an incorrectly configured
website) becoming a regular part of daily life. Because those errors are
inconvenient, users regularly click through them without a second thought.
&lt;/p&gt;

&lt;p&gt;
Understanding the X.509 certificate, which is fully defined in RFC 5280, is
key to making sense of those errors. Unfortunately, these certificates have a
well deserved reputation of being opaque and difficult to manage. With the
multitude of formats used to encode them, this reputation is rightly deserved.
&lt;/p&gt;

&lt;p&gt;
An X.509 certificate is a structured, binary record. This record consists of
several key and value pairs. Keys represent field names, where values may be
simple types (numbers, strings) to more complex structures (lists). The
encoding from the key/value pairs to the structured binary record is done
using a standard known as ASN.1 (Abstract Syntax Notation, One), which is a
platform-agnostic encoding format.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/understanding-public-key-infrastructure-and-x509-certificates" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Fri, 21 Jun 2019 12:30:00 +0000</pubDate>
    <dc:creator>Jeff Woods</dc:creator>
    <guid isPermaLink="false">1340425 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Let's Automate Let's Encrypt</title>
  <link>https://www.linuxjournal.com/content/lets-automate-lets-encrypt</link>
  <description>  &lt;div data-history-node-id="1339202" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/andrei-lukovenko-0" lang="" about="https://www.linuxjournal.com/users/andrei-lukovenko-0" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Andrei Lukovenko&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
HTTPS is a small island of security in this insecure world, and in this day
and age, there is absolutely no reason not to have it on every Web site you
host. Up until last year, there was just a single last excuse: purchasing
certificates was kind of pricey. That probably was not a big deal for
enterprises; however, if you routinely host a dozen Web sites, each
with multiple subdomains, and have to pay for each certificate
out of your own dear pocket—well, that quickly could become a burden.
&lt;/p&gt;

&lt;p&gt;
Now you have no more excuses. Enter &lt;a href="https://letsencrypt.org"&gt;Let's Encrypt&lt;/a&gt;
a free Certificate Authority
that officially left Beta status in April 2016.
&lt;/p&gt;

&lt;p&gt;
Aside from being totally free, there is another special thing about Let's
Encrypt certificates: they don't last long. Currently all certificates
issued by Let's Encrypt are &lt;a href="https://letsencrypt.org/2015/11/09/why-90-days.html"&gt;valid for only 90 days&lt;/a&gt;, and you should expect
that someday this term will become even shorter.
Although this short
lifespan definitely creates a much higher level of security, many people
consider it as an inconvenience, and I've seen people going back from
using Let's Encrypt to buying certificates from commercial certificate
authorities for this very reason.
&lt;/p&gt;

&lt;p&gt;
Of course, if you are running multiple Web sites, having to renew
several certificates manually every three months quickly could become
annoying to say the least. Some
day you even may forget (and you will regret that forgetfulness). Let's leave
routines to computers, right?
&lt;/p&gt;

&lt;p&gt;
If you are using Apache under a Debian-based distribution, Let's Encrypt
already has you covered with the libaugeas0 package, and it is
capable of both issuing and renewing certificates. If, like me, you
prefer nginx and want to have zero-downtime automatic certificate updates
with industrial-grade encryption, keep reading. I'm going to show you how to get
there.
&lt;/p&gt;

&lt;p&gt;
First things first—some assumptions and requirements:
&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;
&lt;p&gt;
You are running the &lt;a href="https://www.nginx.com"&gt;nginx&lt;/a&gt;
Web server/load balancer, and you are going
to use it for TLS termination (that's a fancy, but technically correct way
of saying "nginx will handle all this HTTPS stuff").
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
nginx serves several Web sites, and you want HTTPS on all of them, and
you are not going to pay a single dime.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
You also want to get the highest grade on the industry standard for SSL
tests—&lt;a href="https://www.ssllabs.com/ssltest"&gt;SSL Lab's SSL server test&lt;/a&gt;.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
You do not enjoy the idea of running some not-so-well-sandboxed
third-party code on your server, and you would rather have this code in a
Docker container.
&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
Naturally, you are lazy (or experienced) enough, so you want to write
some scripts that will re-issue all certificates way before they expire.
&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/lets-automate-lets-encrypt" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 01 Nov 2016 10:08:36 +0000</pubDate>
    <dc:creator>Andrei Lukovenko</dc:creator>
    <guid isPermaLink="false">1339202 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
