From bd54c060b92985cbc2f1fbc66d1a8df7a4ca55c4 Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Sun, 24 Apr 2022 19:19:51 +0200 Subject: [PATCH] Update instructions for user installation --- README.md | 51 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index d6d767f..1a694d3 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,46 @@ # Browser PKCS#10 CSR generation PoC -This repository contains a small proof of concept implementation of browser based PKCS#10 certificate signing request -and PKCS#12 key store generation using [node-forge](https://github.com/digitalbazaar/forge). +This repository contains a small proof of concept implementation of browser +based PKCS#10 certificate signing request and PKCS#12 key store generation +using [node-forge](https://github.com/digitalbazaar/forge). -The backend is implemented in [Go](https://golang.org/) and utilizes openssl for the signing operations. +The backend is implemented in [Go](https://golang.org/) and utilizes openssl +for the signing operations. The instructions below have been tested on Debian +11 (Bullseye). Debian 10 works when you use a manual installation of Go. ## Running -1. Clone the repository +1. Install dependencies + + ``` + sudo apt install git npm openssl golang-go + ``` + +2. Clone the repository ``` git clone https://git.dittberner.info/jan/browser_csr_generation.git ``` -2. Get dependencies and build assets +3. Get dependencies and build assets ``` cd browser_csr_generation - npm install --global gulp-cli + npm install --user gulp-cli npm install - gulp + ./node_modules/.bin/gulp ``` -2. Setup the example CA and a server certificate and key +3. Setup the example CA and a server certificate and key ``` ./setup_example_ca.sh - openssl req -new -x509 -days 365 -subj "/CN=localhost" -addext subjectAltName=DNS:localhost -newkey rsa:3072 \ + openssl req -new -x509 -days 365 -subj "/CN=localhost" \ + -addext subjectAltName=DNS:localhost -newkey rsa:3072 \ -nodes -out server.crt.pem -keyout server.key.pem ``` -3. Run the Go based backend +4. Run the Go based backend ``` go run main.go @@ -38,10 +48,12 @@ The backend is implemented in [Go](https://golang.org/) and utilizes openssl for Open https://localhost:8000/ in your browser. -4. Run gulp watch +5. Run gulp watch - You can run a [gulp watch](https://gulpjs.com/docs/en/getting-started/watching-files/) - in a second terminal window to automatically publish changes to the files in the `src` directory: + You can run a + [gulp watch](https://gulpjs.com/docs/en/getting-started/watching-files/) + in a second terminal window to automatically publish changes to the files in + the `src` directory: ``` gulp watch @@ -49,7 +61,8 @@ The backend is implemented in [Go](https://golang.org/) and utilizes openssl for ## Translations -This PoC uses [go-i18n](https://github.com/nicksnyder/go-i18n/) for internationalization (i18n) support. +This PoC uses [go-i18n](https://github.com/nicksnyder/go-i18n/) for +internationalization (i18n) support. The translation workflow needs the `go18n` binary which can be installed via @@ -69,14 +82,16 @@ Then use goi18n merge active.*.toml ``` -to create TOML files for translation as `translate..toml`. After translating the messages run +to create TOML files for translation as `translate..toml`. After +translating the messages run ``` goi18n merge active.*.toml translate.*.toml ``` -to merge the messages back into the active translation files. To add a new language you need to add the language code -to `main.go`'s i18n bundle loading code +to merge the messages back into the active translation files. To add a new +language you need to add the language code to `main.go`'s i18n bundle loading +code ``` for _, lang := range []string{"en-US", "de-DE"} { @@ -84,4 +99,4 @@ for _, lang := range []string{"en-US", "de-DE"} { log.Panic(err) } } -``` \ No newline at end of file +```