<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nginx on Thalamus</title><link>https://blog.thalamus.am/tag/nginx/</link><description>Recent content in Nginx on Thalamus</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><copyright>Thalamus TM</copyright><lastBuildDate>Thu, 12 Jan 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.thalamus.am/tag/nginx/index.xml" rel="self" type="application/rss+xml"/><item><title>Build a certificate authority hierarchy with CFSSL</title><link>https://blog.thalamus.am/posts/setting-up-a-certificate-authority-ca-hierarchy-with-cfssl/</link><pubDate>Thu, 12 Jan 2023 00:00:00 +0000</pubDate><guid>https://blog.thalamus.am/posts/setting-up-a-certificate-authority-ca-hierarchy-with-cfssl/</guid><description>&lt;img src="https://blog.thalamus.am/posts/setting-up-a-certificate-authority-ca-hierarchy-with-cfssl/editorial-cover.png" alt="Featured image of post Build a certificate authority hierarchy with CFSSL" /&gt;&lt;p&gt;A server certificate is only one part of a trust chain. The server presents it, an intermediate CA signs it, and the client needs a trusted root to verify the chain.&lt;/p&gt;
&lt;p&gt;This 2023 lab uses CFSSL, Cloudflare&amp;rsquo;s PKI toolkit, to create those three certificates. The example domain is &lt;code&gt;example.com&lt;/code&gt;. Creating this private CA does not make browsers trust it, and generating the files does not configure a web server.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Example CA (root)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── Example Intermediate CA
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └── example.com (server)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The original article did not record its CFSSL version. Keep that limit in mind when reproducing it. You&amp;rsquo;ll need &lt;code&gt;cfssl&lt;/code&gt; and &lt;code&gt;cfssljson&lt;/code&gt;; use the &lt;a class="link" href="https://github.com/cloudflare/cfssl#installation" target="_blank" rel="noopener"
 &gt;upstream installation instructions&lt;/a&gt; for your platform.&lt;/p&gt;</description></item><item><title>CI/CD for a Java project: manual installation</title><link>https://blog.thalamus.am/posts/ci-cd-for-java-project-manual-installation/</link><pubDate>Sun, 12 Apr 2020 00:00:00 +0000</pubDate><guid>https://blog.thalamus.am/posts/ci-cd-for-java-project-manual-installation/</guid><description>&lt;img src="https://blog.thalamus.am/posts/ci-cd-for-java-project-manual-installation/editorial-cover.png" alt="Featured image of post CI/CD for a Java project: manual installation" /&gt;&lt;p&gt;In this Java CI/CD lab, Jenkins runs the build jobs, Docker builds container images, and Nexus stores them. Nginx gives Jenkins and Nexus their own HTTPS addresses. Before connecting the pipeline, each service needs to work on its own.&lt;/p&gt;
&lt;p&gt;I split the original project into two parts: install the components by hand first, then automate the setup with Terraform and Ansible. This page covers the manual installation recorded in 2020. It stops before the Java build job and Kubernetes deployment.&lt;/p&gt;</description></item></channel></rss>