diff --git a/README.md b/README.md
index 9555e63..a5137c8 100644
--- a/README.md
+++ b/README.md
@@ -11,12 +11,13 @@
-**HTTPS Wrench** is a Golang CLI program to make HTTPS requests based on a YAML configuration file.
-**HTTPS Wrench** was born from the desire of a disposable Bash script to become a reliable tool
-for mechanics of the World Wide Web.
-`https-wrench` will, one day, take the place of `curl` in the hearts and the eyes of whoever is about
-to migrate a DNS record from a webserver to a load balancer, reverse proxy, Ingress Gateway,
-CloudFront distribution.
+**HTTPS Wrench** is a CLI program to make Yaml defined HTTPS requests and to
+inspect x.509 certificates and keys.\
+**HTTPS Wrench** was born from the desire of a disposable Bash script to become
+a reliable tool for mechanics of the World Wide Web.\
+`https-wrench` will, one day, take the place of `curl` in the hearts and the
+eyes of whoever is about to migrate a DNS record from a webserver to a load
+balancer, reverse proxy, Ingress Gateway, CloudFront distribution.
## How to use
@@ -24,14 +25,28 @@ Check the help:
```bash
❯ https-wrench -h
-HTTPS Wrench, a tool to make HTTPS requests based on a YAML configuration file
+
+HTTPS Wrench is a tool to make HTTPS requests according to a Yaml configuration file and to inspect x.509 certificates and keys.
+
+https-wrench has two subcommands: requests and certinfo.
+
+requests is the subcommand that does HTTPS requests according to the configuration provided
+by the --config flag.
+
+certinfo is a subcommand that reads information from PEM encoded x.509 certificates and keys. The certificates
+can be read from local files or TLS enabled endpoints.
+
+certinfo can compare public keys extracted from certificates and private keys to check if they match.
+
+HTTPS Wrench is distributed with an open source license and available at the following address:
+https://github.com/xenOs76/https-wrench
Usage:
https-wrench [flags]
https-wrench [command]
Available Commands:
- certinfo Show info about PEM certificates and keys
+ certinfo Shows information about x.509 certificates and keys
completion Generate the autocompletion script for the specified shell
help Help about any command
requests Make HTTPS requests defined in the YAML configuration file
@@ -45,8 +60,9 @@ Use "https-wrench [command] --help" for more information about a command.
```
Generate a sample config file:
+
```bash
-https-wrench requests --show-sample-config > sample-wrench.yaml
+https-wrench requests --show-sample-config > https-wrench-sample-config.yaml
```
@@ -99,46 +115,61 @@ requests:
-
Make the HTTPS requests defined in the YAML file:
+
```bash
-https-wrench requests --config sample-wrench.yaml
+https-wrench requests --config https-wrench-sample-config.yaml
```
-
-Output of the commands
-
-The output should look like this:
+Sample output of the commands:
-
+
+HTTPS Wrench requests, (long) sample configuration output
+
+
-Or like this, if you customize one of the files in the [examples](./assets/examples/https-wrench-k3s.yaml) folder:
+
+HTTPS Wrench requests, sample requests against a K3s cluster
+
+
-
+
+HTTPS Wrench certinfo, certificate and key
+
+
+
+HTTPS Wrench certinfo, TLS Endpoint
+
## How to install
### Go install
-HTTPS Wrench is "go gettable", so it can be installed with the following command when having a proper `go` setup:
+HTTPS Wrench is "go gettable", so it can be installed with the following command
+when having a proper `go` setup:
+
```bash
go install github.com/xenos76/https-wrench@latest
```
### Manual download
-Release binaries and DEB, RPM, APK packages can be downloaded from the [repo's releases section](https://github.com/xenOs76/https-wrench/releases).
-Binaries and packages are built for Linux and MacOS, `amd64` and `arm64`.
+Release binaries and DEB, RPM, APK packages can be downloaded from the
+[repo's releases section](https://github.com/xenOs76/https-wrench/releases).\
+Binaries and packages are built for Linux and MacOS, `amd64` and `arm64`.
### APT
Configure the repo the following way:
+
```bash
echo "deb [trusted=yes] https://repo.os76.xyz/apt stable main" | sudo tee /etc/apt/sources.list.d/os76.list
```
-then:
+
+then:
+
```bash
sudo apt-get update && sudo apt-get install -y https-wrench
```
@@ -146,6 +177,7 @@ sudo apt-get update && sudo apt-get install -y https-wrench
### YUM
Configure the repo the following way:
+
```bash
echo '[os76]
name=OS76 Yum Repo
@@ -154,54 +186,67 @@ enabled=1
gpgcheck=0
repo_gpgcheck=0' | sudo tee /etc/yum.repos.d/os76.repo
```
-then:
+
+then:
+
```bash
sudo yum install https-wrench
```
### Docker image
-Generate the config:
+Generate the config:
+
```bash
docker run --rm ghcr.io/xenos76/https-wrench:latest -h
docker run --rm ghcr.io/xenos76/https-wrench:latest --show-sample-config > sample-wrench.yaml
```
-Run the `requests` command:
+Run the `requests` command:
+
```bash
docker run -v $(pwd)/sample-wrench.yaml:/https-wrench.yaml --rm ghcr.io/xenos76/https-wrench:latest --config /https-wrench.yaml requests
```
-### Homebrew
+### Homebrew
+
+Add Os76 Homebrew repository:
-Add Os76 Homebrew repository:
```bash
brew tap xenos76/tap
```
-Install `https-wrench`:
+Install `https-wrench`:
+
```bash
brew install --casks https-wrench
```
### Nix/NUR
-Nix users can use the following Nur repository to access `https-wrench`: [https://github.com/xenOs76/nur-packages](https://github.com/xenOs76/nur-packages).
-The repository is not listed yet in the general [Nix User Repository](https://github.com/nix-community/NUR) so the following methods can be used to install the package.
+Nix users can use the following Nur repository to access `https-wrench`:
+[https://github.com/xenOs76/nur-packages](https://github.com/xenOs76/nur-packages).\
+The repository is not listed yet in the general
+[Nix User Repository](https://github.com/nix-community/NUR) so the following
+methods can be used to install the package.
+
+Set a Nix channel:
-Set a Nix channel:
```bash
nix-channel --add https://github.com/xenos76/nur-packages/archive/main.tar.gz nur-os76
nix-channel --update
```
-and add the package to a Nix shell:
+and add the package to a Nix shell:
+
```bash
nix-shell -p '(import { pkgs = import {}; }).https-wrench'
```
-Or use a `flake.nix` like the one from the [nix-shell](/assets/examples/nix-shell) example to achieve a similar result:
+Or use a `flake.nix` like the one from the
+[nix-shell](/assets/examples/nix-shell) example to achieve a similar result:
+
```nix
{
description = "Flake to fetch https-wrench from xenos76's NUR repo";
@@ -243,4 +288,6 @@ Or use a `flake.nix` like the one from the [nix-shell](/assets/examples/nix-shel
}
```
-NixOS users could use a [flake like this](https://raw.githubusercontent.com/xenOs76/nixos-configs/refs/heads/main/flake.nix) to fetch the package.
+NixOS users could use a
+[flake like this](https://raw.githubusercontent.com/xenOs76/nixos-configs/refs/heads/main/flake.nix)
+to fetch the package.
diff --git a/assets/examples/vhs/https-wrench-demo-k3s-example.tape b/assets/examples/vhs/https-wrench-demo-k3s-example.tape
deleted file mode 100644
index 889a635..0000000
--- a/assets/examples/vhs/https-wrench-demo-k3s-example.tape
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Output https-wrench-demo-k3s-example.gif
-#Output https-wrench-demo-k3s-example.mp4
-#Output https-wrench-demo-k3s-example.webm
-
-Require echo
-Require https-wrench
-
-Set Shell "bash"
-Set FontSize 20
-Set FontFamily Hack
-Set Theme catppuccin-frappe
-Set Width 1500
-Set Height 1500
-
-Type "https-wrench --config https-wrench-k3s.yaml requests" Enter
-
-Sleep 5s
diff --git a/assets/examples/vhs/https-wrench-demo-sample-conf.tape b/assets/examples/vhs/https-wrench-demo-sample-conf.tape
deleted file mode 100644
index d45fcbd..0000000
--- a/assets/examples/vhs/https-wrench-demo-sample-conf.tape
+++ /dev/null
@@ -1,21 +0,0 @@
-
-Output https-wrench-demo-sample-conf.gif
-#Output https-wrench-demo-sample-conf.mp4
-#Output https-wrench-demo-sample-conf.webm
-
-Require echo
-Require https-wrench
-
-Set Shell "bash"
-Set FontSize 20
-Set FontFamily Hack
-Set Theme catppuccin-frappe
-Set Width 1500
-Set Height 2000
-
-Type "https-wrench -h" Sleep 500ms Enter
-Type "https-wrench --show-sample-config > sample-wrench.yaml" Sleep 500ms Enter
-Ctrl+l
-Type "https-wrench --config sample-wrench.yaml requests" Enter
-
-Sleep 5s
diff --git a/assets/img/https-wrench-demo-k3s-example.gif b/assets/img/https-wrench-demo-k3s-example.gif
deleted file mode 100644
index ab9fd5e..0000000
Binary files a/assets/img/https-wrench-demo-k3s-example.gif and /dev/null differ
diff --git a/assets/img/https-wrench-demo-sample-conf.gif b/assets/img/https-wrench-demo-sample-conf.gif
deleted file mode 100644
index 26c9dc9..0000000
Binary files a/assets/img/https-wrench-demo-sample-conf.gif and /dev/null differ
diff --git a/assets/img/https-wrench-logo.jpg b/assets/img/https-wrench-logo.jpg
deleted file mode 100644
index 4d96b12..0000000
Binary files a/assets/img/https-wrench-logo.jpg and /dev/null differ
diff --git a/assets/img/https-wrench_certinfo_cert_and_key.png b/assets/img/https-wrench_certinfo_cert_and_key.png
new file mode 100644
index 0000000..2c94afe
Binary files /dev/null and b/assets/img/https-wrench_certinfo_cert_and_key.png differ
diff --git a/assets/img/https-wrench_certinfo_tls_endpoint.png b/assets/img/https-wrench_certinfo_tls_endpoint.png
new file mode 100644
index 0000000..3ca7975
Binary files /dev/null and b/assets/img/https-wrench_certinfo_tls_endpoint.png differ
diff --git a/assets/img/https-wrench_requests_k3s.png b/assets/img/https-wrench_requests_k3s.png
new file mode 100644
index 0000000..1351df1
Binary files /dev/null and b/assets/img/https-wrench_requests_k3s.png differ
diff --git a/assets/img/https-wrench_requests_sample-config.png b/assets/img/https-wrench_requests_sample-config.png
new file mode 100644
index 0000000..d79cbef
Binary files /dev/null and b/assets/img/https-wrench_requests_sample-config.png differ
diff --git a/cmd/certinfo.go b/cmd/certinfo.go
index 47429aa..f808f9c 100644
--- a/cmd/certinfo.go
+++ b/cmd/certinfo.go
@@ -22,9 +22,9 @@ var (
var certinfoCmd = &cobra.Command{
Use: "certinfo",
- Short: "Shows information about PEM certificates and keys",
+ Short: "Shows information about x.509 certificates and keys",
Long: `
-HTTPS Wrench certinfo: shows information about PEM certificates and keys.
+HTTPS Wrench certinfo: shows information about PEM encoded x.509 certificates and keys.
https-wrench certinfo can fetch certificates from a TLS endpoint, read from a PEM bundle file, and check if a
private key matches any of the certificates.
diff --git a/cmd/root.go b/cmd/root.go
index 983fc2c..6641747 100644
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -49,16 +49,16 @@ var (
var rootCmd = &cobra.Command{
Use: "https-wrench",
- Short: "HTTPS Wrench, a tool to make HTTPS requests based on a YAML configuration file",
+ Short: "HTTPS Wrench, a tool to make Yaml defined HTTPS requests and inspect x.509 certificates and keys",
Long: `
-HTTPS Wrench is mainly a tool to make HTTPS requests based on a YAML configuration file.
+HTTPS Wrench is a tool to make HTTPS requests according to a Yaml configuration file and to inspect x.509 certificates and keys.
https-wrench has two subcommands: requests and certinfo.
requests is the subcommand that does HTTPS requests according to the configuration provided
by the --config flag.
-certinfo is a subcommand that reads information from PEM certificates and keys. The certificates
+certinfo is a subcommand that reads information from PEM encoded x.509 certificates and keys. The certificates
can be read from local files or TLS enabled endpoints.
certinfo can compare public keys extracted from certificates and private keys to check if they match.