top of page
검색

Rancher 인증서 설정

  • 작성자 사진: 재훈 정
    재훈 정
  • 2022년 7월 8일
  • 1분 분량

1) 공인인증서는 인증서로 kubernetes/tls secret 생성 ingress 등록


2) 사설인증서는 CA 인증서, 서버 인증서로 kubernetes/tls secret 생성 ingress 등록

  • ca 인증서 : cattle-system 네임스페이스 "tls-ca" 로 생성, Rancher 구동 시 볼륨 등록

  • server 인증서 : rancher ingress "tls-rancher-ingress" 에 등록

3) Cert-Manager 이용 인증서 등록 시 ingress annotation 삭제 후 신규 인증서 적용



#CA 키 / 인증서 생성

openssl genrsa -out ca.key 2048

openssl req -new -x509 -days 3650 -key ca.key -subj "/C=KR/ST=SE/L=SE/O=Kubeworks/CN=KW Root CA" -out ca.crt

#서버 키 / 인증서 생성

openssl req -newkey rsa:2048 -nodes -keyout server.key -subj "/C=KR/ST=SE/L=SE/O=Kubeworks/CN=*.kubeworks.net" -out server.csr

openssl x509 -req -extfile <(printf "subjectAltName=DNS:kubeworks.net,DNS:rancher.kubeworks.net") -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt

#서버 인증서 출력

openssl x509 -in server.crt -text

#Rancher private CA secret 생성

kubectl -n cattle-system create secret generic tls-ca --from-file=cacerts.pem=./ca.crt

#서버 인증서 Secret 생성

k create secret tls tls-rancher-ingress --key server.key --cert server.crt

#Rancher Chart 설정 값

ingress.tls.source=secret
privateCA=true

helm upgrade -i rancher rancher-stable/rancher \
  --namespace cattle-system \
  --set hostname=rancher.kw01 \
  --set ingress.tls.source=secret \
  --set privateCA=true

#사설인증서를 통해 Agent 등록을 위한 CA CHECKSUM 확인       

curl -k -s -fL rancher.kw01/v3/settings/cacerts | jq -r .value > cacert.tmp

sha256sum cacert.tmp | awk '{print $1}'

#ingress.yml
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
# 아래 2줄 삭제
    cert-manager.io/issuer: rancher
    cert-manager.io/issuer-kind: Issuer
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "30"    
    nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"    
    nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
  labels:
    app: rancher
  name: rancher
  namespace: cattle-system
spec:
  rules:
  - host: rancher.kubeworks.net
    http:
      paths:
      - backend:
          serviceName: rancher
          servicePort: 80
  tls:
  - hosts:
    - rancher.kubeworks.net
    secretName: tls-rancher-ingress








 
 
 

Comments


bottom of page