You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a section to the main "TCP over HTTP Support" page to mention the
client cert options provided by pomerium-cli, and add the new
certificate store flags to the table on the reference page.
---------
Co-authored-by: zachary painter <[email protected]>
The command above connects to `https://pomerium.corp.example.com:8443` and then requests the TCP route for `redis.internal.example.com:6379`.
115
115
116
+
### Client Certificates
117
+
118
+
If Pomerium is configured to require client certificates, you will also need to provide a client certificate and private key when invoking the `pomerium-cli` command.
119
+
120
+
You can specify these either by using PEM files, or (starting in v0.25) by searching for a certificate in the system trust store (**macOS** and **Windows** only).
121
+
122
+
To specify a client certificate and key using PEM files:
This will search the Keychain (on macOS) or the Windows certificate store (on Windows) for a client certificate and private key, based on the trusted CA names advertised by Pomerium in the TLS handshake.
135
+
136
+
If you need to select between multiple matching client certificates, you can additionally filter based on the Distinguished Name of the certificate's Issuer and/or the certificate Subject.
137
+
138
+
For example, to filter for a certificate directly issued by a CA with the Common Name "My Trusted CA":
| <aclassName="entRef-anchor"id="--alternate-ca-path">#</a><ahref='#--alternate-ca-path'>--alternate-ca-path</a> | Path to CA certificate to use for HTTP requests. | string |
24
24
| <aclassName="entRef-anchor"id="--browser-cmd">#</a><ahref='#--browser-cmd'>--browser-cmd</a> | Custom browser command to run when opening a URL. | string |
25
25
| <aclassName="entRef-anchor"id="--ca-cert">#</a><ahref='#--ca-cert'>--ca-cert</a> | Path to CA certificate to use for HTTP requests. | string |
| <aclassName="entRef-anchor"id="--client-cert-from-store">#</a><ahref='#--client-cert-from-store'> --client-cert-from-store</a> | (optional) If provided, pomerium-cli will attempt to use a client certificate from the system trust store (macOS and Windows only), searching for a certificate based on the trusted CA names advertised by Pomerium in the TLS handshake. | none |
29
+
| <aclassName="entRef-anchor"id="--client-cert-issuer">#</a><ahref='#--client-cert-issuer'> --client-cert-issuer</a> | (optional) When used in combination with --client-cert-from-store, restricts the client certificate search based on a particular attribute of the certificate's [Issuer name](#certificate-name-filters). | string |
30
+
| <aclassName="entRef-anchor"id="--client-cert-subject">#</a><ahref='#--client-cert-subject'> --client-cert-subject</a> | (optional) When used in combination with --client-cert-from-store, restricts the client certificate search based on a particular attribute of the certificate's [Subject name](#certificate-name-filters). | string |
| <aclassName="entRef-anchor"id="--help">#</a><ahref='#--help'>-h, --help</a> | Help for tcp. | none |
30
33
| <aclassName="entRef-anchor"id="--listen">#</a><ahref='#--listen'>--listen</a> | Local address to start a listener on (default "127.0.0.1:0"). | string |
31
34
| <aclassName="entRef-anchor"id="--pomerium-url">#</a><ahref='#--pomerium-url'>--pomerium-url</a> | The URL of the Pomerium server to connect to. | string |
32
35
| <aclassName="entRef-anchor"id="--version">#</a><ahref='#--version'>-v, --version</a> | Version for pomerium-cli. | none |
36
+
37
+
### Certificate name filters
38
+
39
+
The certificate name filter syntax is `attribute=value`. A name filter can accept only one name attribute. The value must be an exact match (not a substring match). Make sure to quote name filters as appropriate for your shell.
40
+
41
+
For example, `--client-cert-issuer "CN=My Trusted CA"` would filter for a certificate directly issued by a CA with the Common Name "My Trusted CA".
42
+
43
+
Or, `--client-cert-subject "OU=My Department"` would filter for a certificate whose Subject name contains the Organizational Unit Name "My Department".
44
+
45
+
The supported name attributes are:
46
+
47
+
- commonName (CN)
48
+
- countryName (C)
49
+
- localityName (L)
50
+
- organizationName (O)
51
+
- organizationalUnitName (OU)
52
+
- postalCode
53
+
- serialNumber
54
+
- stateOrProvinceName (ST)
55
+
- streetAddress (STREET)
56
+
57
+
Either the long or abbreviated attribute name may be used (for example, `localityName=New York` or `L=New York`).
58
+
59
+
Values are case sensitive: `L=new york` will not match the Locality Name "New York".
0 commit comments