For educational reasons I've decided to create my own CA. Here is what I learned.
Lets get some context first.
| require 'digest/md5' | |
| def gfm(text) | |
| # Extract pre blocks | |
| extractions = {} | |
| text.gsub!(%r{<pre>.*?</pre>}m) do |match| | |
| md5 = Digest::MD5.hexdigest(match) | |
| extractions[md5] = match | |
| "{gfm-extraction-#{md5}}" | |
| end |
| #!/usr/bin/env sh | |
| ## | |
| # This is script with usefull tips taken from: | |
| # https://github.com/mathiasbynens/dotfiles/blob/master/.osx | |
| # | |
| # install it: | |
| # curl -sL https://raw.github.com/gist/2108403/hack.sh | sh | |
| # |
| // Steve Phillips / elimisteve | |
| // 2013.01.03 | |
| // Programming Challenge: Launch 4 threads, goroutines, coroutines, or whatever your language uses for concurrency, | |
| // in addition to the main thread. In the first 3, add numbers together (see sample code below) and pass the results | |
| // to the 4th thread. That 4th thread should receive the 3 results, add the numbers together, format the results as | |
| // a string (see sample code), and pass the result back to `main` to be printed. | |
| // | |
| // Do this as succinctly and readably as possible. _Go!_ #golang #programming #concurrency #challenge | |
| package main |
| // ES7, async/await | |
| function sleep(ms = 0) { | |
| return new Promise(r => setTimeout(r, ms)); | |
| } | |
| (async () => { | |
| console.log('a'); | |
| await sleep(1000); | |
| console.log('b'); | |
| })() |
| ssh-keygen -t rsa -b 4096 -m PEM -f jwtRS256.key | |
| # Don't add passphrase | |
| openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub | |
| cat jwtRS256.key | |
| cat jwtRS256.key.pub |
My main development workstation is a Windows 10 machine, so we'll approach this from that viewpoint.
Recently, Google Chrome started giving me a warning when I open a site that uses https and self-signed certificate on my local development machine due to some SSL certificate issues like the one below: