7 Commits
Author SHA1 Message Date
klyubinandGitHub ba10cd1db7 Add support for verifying server certs against SPIFFE IDs (#252)
Add support for verifying server certs against SPIFFE IDs

This adds support to "certigo connect" to verify that the
server presented a certificate for a specific hostname or
SPIFFE ID. This name can now be unrelated to the hostname
to connect to and the Server Name Indication (SNI) to send
to the server during the TLS handshake.

Prior to this commit, the name expected in the certificate
could only be a hostname, specified either via --name (SNI)
or the hostname to connect to. SPIFFE IDs -- URLs with
"spiffe" as the scheme -- are not useful as hostnames or
SNIs. As a result, this commit adds a new --expected-name
switch to certigo connect. This override provides full
control over what name to expect in the server certificate
presented during the TLS handshake. For example, this name
can now be different from the hostname connected to and the
name specified in Server Name Indication (SNI). Moreover,
if --expected-name is a URL with "spiffe" scheme, it is
only matched against Subject Alternative Names of type URI,
as per the SPIFFE spec.
2022-01-10 15:57:47 -08:00
Roy XuandGitHub f81df5c5a3 print input format guessed by certigo (#210) 2020-02-25 11:17:01 -08:00
23ed60d1d5 better error handling for csrs (#211)
Error when no valid certs are found when verifying instead of accessing oob.
Warn when CSRs are found instead of silently ignoring them.

Co-authored-by: Mat Byczkowski <mbyczkowski@gmail.com>
2020-02-25 10:58:06 -08:00
Matthew McPherrin 26cd65d9bd refactor certigo package main
This splits the logic into a cli, which handles parsing command line args and
reading files, and a terminal abstraction for handling user input and ouput.

All uses of os.Exit are removed in favor of returning errors.

Overall this enables better testing and reuse of code.  Previously we had to
rely on external unit testing for CLI tests, which are harder to write tests.
2020-01-13 15:58:53 -08:00
Cedric Staub 594b04e874 Print revocation reason & staple status 2018-04-05 16:01:17 -07:00
Matthew McPherrin f07f7d351c Support any format certigo does for CAs.
Todo: Right now it doesn't support any truststore password other than changeit.
That's what Java ships.  A follow-up commit will add better password handling
2018-04-04 21:21:46 -07:00
Matthew McPherrin c58011aee0 Move ocsp.go and verify.go into lib
This reduces a bunch of copy-paste code.
2018-04-04 21:21:46 -07:00