OpenSSL commands¶
Create new user¶
-
Generate private key:
openssl genrsa -out <private_key_name>.key 2048
-
Create Certificate Signing Request:
openssl req -new -key <private_key_name>.key -subj "/CN=<user_name>" -out <user_name>.csr
-
Create a CSR
apiVersion: certificates.k8s.io/v1 kind: CertificateSigningRequest metadata: name: <user_name> spec: groups: - system:authenticated request: $REQUEST signerName: kubernetes.io/kube-apiserver-client usages: - client auth
$REQUEST
should contains the encoded .csr file:
cat <user_name>.csr | base64 | tr -d '\n'
-
Approve CSR:
kubectl certificate approve <user_name>
-
Save client certificate:
k get csr <user_name> -o jsonpath='{.status.certificate}' | base64 -d > <user_name>.crt
-
Add user to kubeconfig
k config set-credentials <user_name> --client-key=<user_name>.key --client-certificate=carlton.crt --embed-certs
Check certificate content¶
openssl x509 -in <certificate_file_name>.crt -text -noout