<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TLS on Logan's Nest</title><link>https://blog.han.life/tags/tls/</link><description>Recent content in TLS on Logan's Nest</description><generator>Hugo</generator><language>en-au</language><lastBuildDate>Sun, 19 Nov 2017 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.han.life/tags/tls/index.xml" rel="self" type="application/rss+xml"/><item><title>Generate custom x509 certificate in Okta</title><link>https://blog.han.life/posts/2017/2017-11-19-generate-custom-x509-certificate-in-okta/</link><pubDate>Sun, 19 Nov 2017 00:00:00 +0000</pubDate><guid>https://blog.han.life/posts/2017/2017-11-19-generate-custom-x509-certificate-in-okta/</guid><description>&lt;p&gt;* Requires API key with admin access, least for the target app&lt;/p&gt;&#10;&lt;p&gt;Obtain app name &amp;amp; label using app ID&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -v -X GET &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-H &lt;span class="s2"&gt;&amp;#34;Accept: application/json&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-H &lt;span class="s2"&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-H &lt;span class="s2"&gt;&amp;#34;Authorization: SSWS &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;api_token&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;https://[okta_instance].okta.com/api/v1/apps/[app_id]&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Generate custom certificate and capture &amp;lsquo;kid&amp;rsquo; value from response&lt;/p&gt;</description></item><item><title>Lets Encrypt nginx SSL certificate renewal via cron</title><link>https://blog.han.life/posts/2015/2015-11-18-lets-encrypt-certificate-renewal-via-cron/</link><pubDate>Wed, 18 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.han.life/posts/2015/2015-11-18-lets-encrypt-certificate-renewal-via-cron/</guid><description>&lt;p&gt;Add below as a cron entry.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/path/letsencrypt/letsencrypt-auto --server https://acme-v01.api.letsencrypt.org/directory --renew-by-default -a webroot --webroot-path /webroot/ --email youremail --text --agree-tos --agree-dev-preview -d 7979.us -d www.7979.us auth&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/etc/init.d/nginx reload&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Then configure nginx SSL like below.&lt;/p&gt;</description></item><item><title>Foreman + Puppet autosign.conf doesn't work</title><link>https://blog.han.life/posts/2014/2014-09-08-foreman-puppet-autosign-conf-doesnt-work/</link><pubDate>Mon, 08 Sep 2014 00:00:00 +0000</pubDate><guid>https://blog.han.life/posts/2014/2014-09-08-foreman-puppet-autosign-conf-doesnt-work/</guid><description>&lt;p&gt;Issue: 1. Foreman generates auto sign entry when /provision called first time. (boot loader hit) 2. Once OS is done and call puppet agent run, CSR doesn&amp;rsquo;t get auto-signed. - stays in &amp;lsquo;pending&amp;rsquo; status forever&lt;/p&gt;</description></item><item><title>Generate Bacula client cert/key pair via Puppet</title><link>https://blog.han.life/posts/2014/2014-05-28-generate-bacula-client-certkey-pair-via-puppet/</link><pubDate>Wed, 28 May 2014 00:00:00 +0000</pubDate><guid>https://blog.han.life/posts/2014/2014-05-28-generate-bacula-client-certkey-pair-via-puppet/</guid><description>&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;exec {&amp;#39;generate client key file&amp;#39;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;command =&amp;gt; &amp;#39;/usr/bin/openssl genrsa -out /bacula/bacula-client.key 2048;chmod 600 /bacula/bacula-client.key&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;creates =&amp;gt; &amp;#39;/bacula/bacula-client.key&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;require =&amp;gt; Package[&amp;#39;bacula-fd&amp;#39;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;exec {&amp;#39;generate client cert file&amp;#39;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;command =&amp;gt; &amp;#39;/usr/bin/openssl req -new -key /bacula/bacula-client.key -x509 -subj &amp;#34;/C=AU/ST=somewhere/L=somewhere/O=something/CN=something&amp;#34; -out /bacula/bacula-client.cert&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;creates =&amp;gt; &amp;#39;/bacula/bacula-client.cert&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;require =&amp;gt; [ Package[&amp;#39;bacula-fd&amp;#39;], Exec[&amp;#39;generate client key file&amp;#39;], ],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;exec {&amp;#39;combine client key and cert files&amp;#39;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;notify =&amp;gt; Service[&amp;#34;bacula-fd&amp;#34;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;command =&amp;gt; &amp;#39;/bin/cat /bacula/bacula-client.key /bacula/bacula-client.cert &amp;gt; /bacula/bacula-client.pem;chmod 600 /bacula/bacula-client.pem&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;creates =&amp;gt; &amp;#39;/bacula/bacula-client.pem&amp;#39;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;require =&amp;gt; [ Package[&amp;#39;bacula-fd&amp;#39;], Exec[&amp;#39;generate client key file&amp;#39;], Exec[&amp;#39;generate client cert file&amp;#39;], ],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Would be nicer if I can send them to backup location but doesn&amp;rsquo;t really matter as there&amp;rsquo;s master key.&lt;/p&gt;</description></item></channel></rss>