All Projects → cert-manager → istio-csr

cert-manager / istio-csr

Licence: Apache-2.0 License
istio-csr is an agent that allows for Istio workload and control plane components to be secured using cert-manager.

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to istio-csr

Cli
🧰 A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc.
Stars: ✭ 2,151 (+2555.56%)
Mutual labels:  tls, certificate
freshcerts
ACME certificate protocol (Let's Encrypt) proxy client with a dashboard and monitoring
Stars: ✭ 59 (-27.16%)
Mutual labels:  tls, certificate
Acmetool
🔒 acmetool, an automatic certificate acquisition tool for ACME (Let's Encrypt)
Stars: ✭ 1,882 (+2223.46%)
Mutual labels:  tls, certificate
Pem
Easy PEM file parsing in Python.
Stars: ✭ 122 (+50.62%)
Mutual labels:  tls, certificate
smtplib-bruteforce
bruteforcing gmail (TLS/SSL)
Stars: ✭ 26 (-67.9%)
Mutual labels:  tls, certificate
Certstrap
Tools to bootstrap CAs, certificate requests, and signed certificates.
Stars: ✭ 1,689 (+1985.19%)
Mutual labels:  tls, certificate
Mutual Tls Ssl
🔐 Tutorial of setting up Security for your API with one way authentication with TLS/SSL and mutual mutual authentication for a java based web server and a client with both Spring Boot. Different clients are provided such as Apache HttpClient, OkHttp, Spring RestTemplate, Spring WebFlux WebClient Jetty and Netty, the old and the new JDK HttpClient, the old and the new Jersey Client, Google HttpClient, Unirest, Retrofit, Feign, Methanol, vertx, Scala client Finagle, Featherbed, Dispatch Reboot, AsyncHttpClient, Sttp, Akka, Requests Scala, Http4s Blaze, Kotlin client Fuel, http4k, Kohttp and ktor. Also other server examples are available such as jersey with grizzly. Also gRPC examples are included
Stars: ✭ 163 (+101.23%)
Mutual labels:  tls, certificate
Nico
A HTTP2 web server for reverse proxy and single page application, automatically apply for ssl certificate, Zero-Configuration.
Stars: ✭ 43 (-46.91%)
Mutual labels:  tls, certificate
sslcontext-kickstart
🔐 A lightweight high level library for configuring a http client or server based on SSLContext or other properties such as TrustManager, KeyManager or Trusted Certificates to communicate over SSL TLS for one way authentication or two way authentication provided by the SSLFactory. Support for Java, Scala and Kotlin based clients with examples. Av…
Stars: ✭ 295 (+264.2%)
Mutual labels:  tls, certificate
cert-sync
Dynamic provision for istio ingressgateway certificates.
Stars: ✭ 22 (-72.84%)
Mutual labels:  tls, istio
Ssl Checker
Python script that collects SSL/TLS information from hosts
Stars: ✭ 94 (+16.05%)
Mutual labels:  tls, certificate
qsslcaudit
test SSL/TLS clients how secure they are
Stars: ✭ 22 (-72.84%)
Mutual labels:  tls, certificate
Icingaweb2 Module X509
Keeps track of certificates as they are deployed in a network environment.
Stars: ✭ 78 (-3.7%)
Mutual labels:  tls, certificate
Aspnetcorecertificates
Certificate Manager in .NET Core for creating and using X509 certificates
Stars: ✭ 135 (+66.67%)
Mutual labels:  tls, certificate
Acme client
Java ACME Client application
Stars: ✭ 77 (-4.94%)
Mutual labels:  tls, certificate
Cert
Cert is the Go tool to get TLS certificate information.
Stars: ✭ 166 (+104.94%)
Mutual labels:  tls, certificate
Certigo
A utility to examine and validate certificates in a variety of formats
Stars: ✭ 662 (+717.28%)
Mutual labels:  tls, certificate
Sortpem
➿ Sorting utility for PEM files
Stars: ✭ 11 (-86.42%)
Mutual labels:  tls, certificate
Ssl exporter
Exports Prometheus metrics for SSL certificates
Stars: ✭ 211 (+160.49%)
Mutual labels:  tls, certificate
concerto
A command line tool and a library to generate TLS certificates for development purposes.
Stars: ✭ 34 (-58.02%)
Mutual labels:  tls, certificate

cert-manager project logo

Go Report Card artifact hub badge

istio-csr

istio-csr is an agent that allows for Istio workload and control plane components to be secured using cert-manager.

Certificates facilitating mTLS — both inter and intra-cluster — will be signed, delivered and renewed using cert-manager issuers.

istio-csr supports Istio v1.7+ and cert-manager v1.3+


Getting Started Guide For istio-csr

We have a guide for setting up istio-csr in a fresh kind cluster.

Following the guide is the best way to see istio-csr in action.

If you've already seen istio-csr in action or if you're experienced with running Istio and just want quick installation instructions, read on for more details.

Lower-Level Details (For Experienced Istio Users)

⚠️ The getting started guide is a better place if you just want to try istio-csr out!

Running istio-csr requires a few steps and preconditions in order:

  1. A cluster without Istio already installed
  2. cert-manager installed in the cluster
  3. An Issuer or ClusterIssuer which will be used to issue Istio certificates
  4. istio-csr installed (likely via helm)
  5. Istio installed with some custom config required, e.g. using the example config.

Why Custom Istio Install Manifests?

If you take a look at the contents of the example Istio install manifest there are a few custom configuration options which are important.

Required changes include setting ENABLE_CA_SERVER to false and setting the caAddress from which Istio will request certificates; replacing the CA server is the whole point of istio-csr!

Mounting and statically specifying the root CA is also an important recommended step. Without a manually specified root CA istio-csr defaults to trying to discover root CAs automatically, which could theoretically lead to a signer hijacking attack if for example a signer's token was stolen (such as the cert-manager controller's token).

Issuer or ClusterIssuer?

Unless you know you need a ClusterIssuer we'd recommend starting with an Issuer, since it should be easier to reason about the access controls for an Issuer; they're namespaced and so naturally a little more limited in scope.

That said, if you view your entire Kubernetes cluster as being a trust domain itself, then a ClusterIssuer is the more natural fit. The best choice will depend on your specific situation.

Our getting started guide uses an Issuer.

Which Issuer Type?

Whether you choose to use an Issuer or a ClusterIssuer, you'll also need to choose the type of issuer you want such as:

The key requirement is that arbitrary values can be placed into the subjectAltName (SAN) X.509 extension, since Istio places SPIFFE IDs there.

That means that the ACME issuer will not work — publicly trusted certificates such as those issued by Let's Encrypt don't allow arbitrary entries in the SAN, for very good reasons.

If you're already using Hashicorp Vault then the Vault issuer is an obvious choice. If you want to control your own PKI entirely, we'd recommend the CA issuer. The choice is ultimately yours.

Installing istio-csr After Istio

This is unsupported because it's exceptionally difficult to do safely. It's likely that installing istio-csr after Istio isn't possible to do without downtime, since installing istio-csr second would require a time period where all Istio sidecars trust both the old Istio-managed CA and the new cert-manager controlled CA.

How Does istio-csr Work?

istio-csr implements the gRPC Istio certificate service which authenticates, authorizes, and signs incoming certificate signing requests from Istio workloads, routing all certificate handling through cert-manager installed in the cluster.

This seamlessly matches the behaviour of istiod in a typical installation, while allowing certificate management through cert-manager.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].