• Link to Facebook
  • Link to LinkedIn
  • Link to X
  • Link to Youtube
  • 로그인
  • 회원가입
  •  한글 한글 한글 ko
  • English English 영어 en
OPENMARU APM
  • 오픈마루
    • 회사소개
    • 연혁
    • 오픈마루 CI
  • 제품
    • Cloud APM
      • Application 모니터링
      • Openshift & Kubernetes 모니터링
      • WEB/WAS 모니터링
      • URL 모니터링
      • Cubrid 모니터링
    • Cluster
    • Dashboard
    • COP
    • CogentAI
    • iAP
    • Observability
  • 오픈소스
    • 쿠버네티스
    • 아파치 톰캣
    • CentOS
  • 레드햇
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat JBoss EAP
  • 견적 문의
    • 견적문의
    • 가격 안내
  • 조달물품
    • G2B 딜 등록
    • 조달물품 OPENMARU APM
    • 조달물품 OPENMARU Cluster
    • 혁신장터
    • 찾아가는 클라우드 네이티브 세미나
  • 레퍼런스
  • 고객지원
  • 문서
  • 블로그
    • 오픈마루
    • 구매 관련
    • 기술 지원
    • 트러블 슈팅
  • Click to open the search input field Click to open the search input field Search
  • Menu Menu

OpenShift 인증서 날짜는 어떻게 확인할까요?

오늘은 OpenShift에서 인증서 날짜를 확인하는 방법과 그 중요성에 대해 자세히 알아보겠습니다.

OpenShift 인증서 날짜 어떻게 확인하나요?

OpenShift 인증서 날짜 어떻게 확인하나요?


OpenShift 클러스터를 운영하다 보면 다양한 인증서들이 사용되고 있다는 것을 알게 됩니다. 이러한 인증서들은 클러스터의 보안과 정상적인 작동을 위해 필수적인 요소이지만, 만료일을 놓치게 되면 심각한 문제를 야기할 수 있습니다. 오늘은 OpenShift에서 인증서 날짜를 확인하는 방법과 그 중요성에 대해 자세히 알아보겠습니다.

그러면 어떻게 확인하나요?


OpenShift에서 인증서를 확인하는 방법은 크게 두 가지 접근법이 있습니다. 첫 번째는 전체 인증서 현황을 파악하는 방법이고, 두 번째는 특정 구성요소별로 개별 인증서를 확인하는 방법입니다.

1) 전체 인증서 현황 파악


먼저 클러스터 전체의 TLS 인증서 만료일을 한 번에 확인할 수 있는 명령어를 살펴보겠습니다. 

echo -e "NAMESPACE\tNAME\tEXPIRY" && oc get secrets -A -o go-template='range .itemsif .data.tls\.crt.metadata.namespace"\t".metadata.name"\t"(.data.tls\.crt | base64decode) | regexp "-----BEGIN CERTIFICATE-----([^-]+)-----END CERTIFICATE-----" | base64decode | x509 "notAfter""\n"endend'

이 명령어는 모든 네임스페이스에서 TLS 인증서를 포함한 시크릿들을 찾아 만료일과 함께 정리된 형태로 출력해줍니다.

2) 주요 구성요소별 인증서 확인


전체 인증서 만료 날짜 확인

echo -e "NAMESPACE\tNAME\tEXPIRY"
oc get secrets -A -o go-template='{{range .items}}{{if eq .type "kubernetes.io/tls"}}{{.metadata.namespace}}{{"\t"}}{{.metadata.name}}{{"\t"}}{{index .data "tls.crt"}}{{"\n"}}{{end}}{{end}}' | \
while read namespace name cert; do
  echo -en "$namespace\t$name\t"
  echo $cert | base64 -d | openssl x509 -noout -enddate
done | column -t

API 서버 인증서

# API 서버 주소 확인
oc cluster-info

# API 서버 인증서 만료일 확인
openssl s_client -connect :6443 -servername  2>/dev/null | openssl x509 -noout -dates

서비스 CA 인증서

# ConfigMap 조회
oc get configmap -n openshift-service-ca

# 서비스 CA 인증서 만료일 확인
oc get configmap openshift-service-ca.crt -n openshift-service-ca -o jsonpath='{.data.service-ca\.crt}' | openssl x509 -noout -dates

노드 인증서

# 노드 인증서 정보 확인
oc get secret kube-apiserver-to-kubelet-signer -n openshift-kube-apiserver-operator -o json | jq '.metadata.annotations'

부트스트랩 인증서

oc -n openshift-machine-config-operator \
  get secret machine-config-server-tls \
  -o jsonpath='{.data.tls\.crt}' \
| base64 -d | openssl x509 -noout -subject -issuer -dates

etcd 인증서

# etcd 클라이언트 인증서 확인
oc extract secret/etcd-client --keys=tls.crt --to=- -n openshift-apiserver | openssl x509 -noout -enddate

# etcd 인증서 발급자 확인
oc get secret etcd-client -n openshift-etcd -o jsonpath='{.data.tls\.crt}' | base64 --decode | openssl x509 -noout -subject -issuer

Aggregated API 클라이언트 인증서

# Aggregated API 클라이언트 인증서 확인
oc get secret aggregator-client -n openshift-kube-apiserver -o jsonpath='{.data.tls\.crt}' | base64 --decode | openssl x509 -noout -dates

Machine Config Operator 인증서

# MCO 인증서 확인 (마스터/워커 노드 접속)
openssl x509 -in /etc/kubernetes/kubelet-ca.crt -noout -enddate

Ingress 인증서

# Ingress Controller 확인
oc get ingresscontroller -n openshift-ingress-operator

# 기본 Ingress 인증서 확인
oc get ingresscontroller default -n openshift-ingress-operator -o jsonpath='{.spec.defaultCertificate}'

# Ingress 인증서 만료일 확인
oc extract secret/router-certs-default --keys=tls.crt --to=- -n openshift-ingress | openssl x509 -noout -enddate

모니터링 인증서

# 모니터링 관련 Secret 확인
oc get secrets -n openshift-monitoring | grep prometheus

# Prometheus TLS 인증서 확인
oc extract secret/prometheus-k8s-tls --keys=tls.crt --to=- -n openshift-monitoring | openssl x509 -noout -enddate

OLM (Operator Lifecycle Manager) 인증서

# OLM 인증서 확인
oc get secret olm-operator-serving-cert -n openshift-operator-lifecycle-manager -o jsonpath='{.data.tls\.crt}' | base64 --decode | openssl x509 -noout -dates

# pprof-cert 자동 갱신 모니터링
while [ True ] ; do oc -n openshift-operator-lifecycle-manager get secret pprof-cert -o jsonpath="{ .data.tls\.crt }" | base64 -d | openssl x509 -in - -text | grep "Not " ; sleep 900 ; done

미러 레지스트리 인증서

# 미러 레지스트리 인증서 확인
openssl s_client -connect registry.ocp.example.com:5000 -servername registry.ocp.example.com 2>/dev/null | grep NotAfter

Proxy 인증서

# Proxy TLS 인증서 확인
oc get secret proxy-tls -n openshift-machine-config-operator -o jsonpath='{.data.tls\.crt}' | base64 --decode | openssl x509 -noout -dates
레드햇 오픈시프트 – (Red Hat OpenShift)

OpenShift 인증서 날짜 확인이 왜 중요한가?


OpenShift 클러스터에서 인증서 관리는 단순히 보안을 위한 것이 아닙니다. 이는 클러스터의 가용성과 직결되는 핵심 운영 요소입니다.

1) 보안 측면에서의 중요성

인증서는 클러스터 내부와 외부 간의 모든 통신을 보호합니다. API 서버와의 통신, etcd 클러스터 간의 데이터 동기화, 서비스 메시 내부의 mTLS 통신 등 모든 보안 통신이 인증서에 의존합니다. 만료된 인증서는 즉시 보안 취약점으로 이어질 수 있으며, 악의적인 공격자가 이를 악용할 가능성이 있습니다.

2) 운영 연속성 측면에서의 중요성

더욱 심각한 것은 인증서 만료로 인한 서비스 중단입니다. OpenShift는 마이크로서비스 아키텍처를 기반으로 하므로, 하나의 인증서가 만료되더라도 연쇄적으로 여러 서비스에 영향을 미칠 수 있습니다. 특히 API 서버나 etcd 인증서가 만료되면 클러스터 전체가 사용 불가능한 상태가 될 수 있습니다.

3) 규정 준수 측면에서의 중요성

많은 기업 환경에서는 보안 정책상 인증서의 정기적인 갱신과 모니터링을 요구합니다. 인증서 만료일을 사전에 파악하고 관리하는 것은 이러한 규정 준수 요구사항을 충족하는 데 필수적입니다.

만료되면 어떤 문제가 터지나요?


인증서가 만료되었을 때 발생하는 문제들을 구체적인 인증서 종류별로 살펴보겠습니다.

1) API 서버 인증서 만료 시 문제점

API 서버 인증서가 만료되면 가장 치명적인 상황이 발생합니다.

  • 클러스터 접근 불가 : oc명령어나 웹 콘솔을 통한 클러스터 접근이 완전히 차단됩니다.
  • 자동화 도구 실패 : CI/CD 파이프라인, 모니터링 시스템 등 API를 통해 클러스터와 상호작용하는 모든 도구가 작동을 멈춥니다.
  • 운영자 개입 불가 : 문제 해결을 위한 클러스터 조작이 불가능해져 물리적 노드 접근이 필요할 수 있습니다.

2) etcd 인증서 만료 시 문제점

etcd는 클러스터의 모든 상태 정보를 저장하므로 그 인증서 만료는 매우 심각합니다.

  • 클러스터 상태 동기화 실패 : etcd 클러스터 멤버 간 통신이 중단되어 데이터 일관성이 깨질 수 있습니다.
  • 새로운 리소스 생성 불가 : 파드, 서비스 등 새로운 Kubernetes 리소스 생성이 불가능해집니다.
  • 기존 워크로드 영향 : 기존에 실행 중인 애플리케이션도 스케일링이나 업데이트가 불가능해집니다.

3) Ingress Controller 인증서 만료 시 문제점

외부 트래픽 처리를 담당하는 Ingress Controller 인증서가 만료되면

  • 외부 접근 차단 : 웹 애플리케이션이나 API 엔드포인트에 대한 외부 사용자 접근이 불가능해집니다.
  • SSL/TLS 오류 : 브라우저에서 보안 경고가 표시되고 사용자가 서비스를 이용할 수 없습니다.
  • 로드밸런서 상태 이상: 외부 로드밸런서의 헬스체크가 실패하여 트래픽 분산에 문제가 발생할 수 있습니다.

4) Ingress Controller 인증서 만료 시 문제점

외부 트래픽 처리를 담당하는 Ingress Controller 인증서가 만료되면

  • 외부 접근 차단 : 웹 애플리케이션이나 API 엔드포인트에 대한 외부 사용자 접근이 불가능해집니다.
  • SSL/TLS 오류 : 브라우저에서 보안 경고가 표시되고 사용자가 서비스를 이용할 수 없습니다.
  • 로드밸런서 상태 이상: 외부 로드밸런서의 헬스체크가 실패하여 트래픽 분산에 문제가 발생할 수 있습니다.

5) 서비스 CA 인증서 만료 시 문제점

클러스터 내부 서비스 간 통신을 담당하는 서비스 CA 인증서가 만료되면

  • 서비스 메시 통신 장애 : 마이크로서비스 간의 상호 인증이 실패하여 내부 API 호출이 차단됩니다.
  • 모니터링 시스템 오류 : Prometheus, Grafana 등 모니터링 도구들이 메트릭을 수집할 수 없게 됩니다.
  • 로깅 시스템 장애 : 로그 수집 및 전달 과정에서 인증 오류가 발생합니다.

6) 노드 인증서 만료 시 문제점

워커 노드의 kubelet 인증서가 만료되면

  • 노드 격리 : 해당 노드가 클러스터에서 분리되어 NotReady 상태가 됩니다.
  • 파드 스케줄링 실패 : 새로운 파드가 해당 노드에 스케줄링되지 않습니다.
  • 기존 워크로드 중단 : 해당 노드에서 실행 중인 파드들이 비정상 종료될 수 있습니다.

수동 갱신이 필요한 인증서는 어떻게 갱신하나요?


OpenShift에서는 대부분의 인증서가 자동으로 갱신되지만, 일부 인증서는 수동 관리가 필요합니다. 이러한 인증서들을 효과적으로 관리하는 방법을 알아보겠습니다.

자동 갱신되는 인증서와 수동 관리 인증서 구분

먼저 어떤 인증서가 자동으로 갱신되고 어떤 것이 수동 관리가 필요한지 구분해야 합니다.

자동 갱신 인증서 (OpenShift 4.9 이후)

    • etcd 클러스터 인증서
    • 서비스 CA 인증서 (13개월 미만 남으면 자동 갱신)
    • OpenShift 4.14.35 이후: 기본 Ingress Controller 인증서

수동 관리 필요 인증서

    • 사용자가 제공한 Default Ingress 인증서
    • 미러 레지스트리 인증서
    • 외부 CA에서 발급받은 사용자 정의 인증서

사용자 정의 Ingress 인증서 갱신

Default Ingress Controller에 사용자 정의 인증서를 적용한 경우의 갱신 방법입니다.

1. 새 와일드카드 인증서 준비

# *.apps.ocp.example.com 도메인을 포함한 인증서

2. 현재 Ingress 인증서 백업

oc get secret router-certs-defaul -n openshift-ingress -o yaml > ingress-cert-backup.yaml

3. 새 인증서로 업데이트

oc create secret tls custom-ingress-cert --cert=new-ingress.crt --key=new-ingress.key -n openshift-ingress --dry-run=client -o yaml | oc replace -f -

4. ingress Controller 설정 확인

oc get ingresscontroller default -n openshift-ingress-operator -o yaml

미러 레지스트리 인증서 갱신

 미러 레지스트리를 사용하는 환경에서 인증서를 갱신하는 방법입니다.

1. 미러 레지스트리 인증서 확인

oc get configmap registry-cas -n openshift-config -o yaml

2. 새 CA 인증서 준비

# 새로운 미러 레지스트리의 CA 인증서

3. ConfigMap 업데이트

oc patch configmap registry-cas -n openshift-config --patch='{"data":{"registry.example.com..5000":"새로운CA인증서내용"}}'

인증서 점검 자동화 스크립트

정기적인 인증서 점검을 위한 스크립트 예시입니다.

#!/bin/bash

# 인증서 만료일 임계값 (일 단위)
THRESHOLD_DAYS=30

# 주요 인증서 확인 및 알림
check_certificate() {
    local cert_name=$1
    local cert_command=$2
    
    echo "=== $cert_name 인증서 확인 ==="
    expiry_date=$(eval $cert_command | grep "notAfter" | cut -d= -f2)
    expiry_epoch=$(date -d "$expiry_date" +%s)
    current_epoch=$(date +%s)
    days_left=$(( (expiry_epoch - current_epoch) / 86400 ))
    
    echo "만료일: $expiry_date"
    echo "남은 일수: $days_left일"
    
    if [ $days_left -lt $THRESHOLD_DAYS ]; then
        echo "⚠️ 경고: $cert_name 인증서가 $days_left일 후 만료됩니다!"
        # 여기에 알림 로직 추가 (이메일, Slack 등)
    fi
    echo ""
}

# API 서버 인증서 확인
check_certificate "API Server" "openssl s_client -connect api.ocp.example.com:6443 -servername api.ocp.example.com 2>/dev/null | openssl x509 -noout -dates"

# 서비스 CA 인증서 확인
check_certificate "Service CA" "oc get configmap openshift-service-ca.crt -n openshift-service-ca -o jsonpath='{.data.service-ca\.crt}' | openssl x509 -noout -dates"

# Ingress 인증서 확인
check_certificate "Ingress" "oc extract secret/router-certs-default --keys=tls.crt --to=- -n openshift-ingress | openssl x509 -noout -dates"

모니터링 및 알림 설정

인증서 만료를 사전에 감지하기 위한 모니터링 설정도 중요합니다.

1. Prometheus 알림 규칙 설정

apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  name: certificate-expiry-alerts
  namespace: openshift-monitoring
spec:
  groups:
  - name: certificate-expiry
    rules:
    - alert: CertificateExpiringSoon
      expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 30
      for: 1h
      labels:
        severity: warning
      annotations:
        summary: "Certificate expiring soon"
        description: "Certificate for  $labels.instance  expires in less than 30 days"

2. 정기적인 점검 스케줄 설정

# crontab 설정 예시
0 9 * * 1 /path/to/certificate-check.sh

인증서 관리는 OpenShift 클러스터 운영에서 가장 중요하면서도 간과하기 쉬운 부분입니다. 정기적인 확인과 체계적인 갱신 프로세스를 통해 예기치 않은 서비스 중단을 예방할 수 있습니다. 특히 수동 관리가 필요한 인증서들은 달력에 미리 일정을 등록하여 갱신 시기를 놓치지 않도록 하는 것이 중요합니다.

맺음말(마무리)


OpenShift 인증서는 단순한 보안 수단이 아니라 클러스터의 안정성과 신뢰성을 지탱하는 핵심 요소입니다. 만료일을 놓치면 API 서버나 etcd 같은 주요 컴포넌트에 접근할 수 없게 되고, 이는 곧 서비스 전체 중단으로 이어질 수 있습니다. 

기업 환경에서는 보안 규정 준수를 위해서도 인증서 관리가 필수적입니다. 단순히 만료 직전에 갱신하는 수준이 아니라, 정기 점검과 자동 알림 체계를 통해 사전 예방하는 것이 바람직합니다.


ai

MSA 컨베이어 벨트 1Day 워크샵 소개

2025-06-20/카테고리: Seminar, 오픈나루 공지사항/작성자: 오픈마루 마케팅0
자세히 보기
https://i0.wp.com/www.openmaru.io/wp-content/uploads/2025/06/MSAP-CNF_BLOG_TITLE_openmaru.webp?fit=512%2C512&ssl=1 512 512 오픈마루 마케팅0 https://www.openmaru.io/wp-content/uploads/2020/11/logo@2x.png 오픈마루 마케팅02025-06-20 10:19:042025-06-20 10:19:04MSA 컨베이어 벨트 1Day 워크샵 소개
cloud native

[세미나] 복잡한 MSA, AI로 쉽게 해결할 수 있는 방법 공개!

2025-06-02/카테고리: Seminar, 오픈나루 공지사항/작성자: 오픈마루 마케팅0
자세히 보기
https://i0.wp.com/www.openmaru.io/wp-content/uploads/2025/06/msa-strategy_title_openmaru-2.webp?fit=512%2C512&ssl=1 512 512 오픈마루 마케팅0 https://www.openmaru.io/wp-content/uploads/2020/11/logo@2x.png 오픈마루 마케팅02025-06-02 08:56:362025-06-20 09:45:21[세미나] 복잡한 MSA, AI로 쉽게 해결할 수 있는 방법 공개!

레드햇 Container Day 세미나 – 컨테이너와 AI 솔루션 소개

2025-02-13/카테고리: Red Hat, Seminar, Tech Talk/작성자: 오픈마루 마케팅3
자세히 보기
https://i0.wp.com/www.openmaru.io/wp-content/uploads/2025/02/%EB%A0%88%EB%93%9C%ED%97%B7-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%84%B8%EB%AF%B8%EB%82%98_thumbnail.webp?fit=381%2C303&ssl=1 303 381 오픈마루 마케팅3 https://www.openmaru.io/wp-content/uploads/2020/11/logo@2x.png 오픈마루 마케팅32025-02-13 13:06:242025-02-17 15:14:50레드햇 Container Day 세미나 – 컨테이너와 AI 솔루션 소개
Page 1 of 25123›»

이 글 공유하기:

  • 페이스북에 공유하려면 클릭하세요. (새 창에서 열림) Facebook
  • 클릭하여 X에서 공유 (새 창에서 열림) X
  • 클릭하여 친구에게 이메일로 링크 보내기 (새 창에서 열림) 전자우편
  • 인쇄하기 (새 창에서 열림) 인쇄
  • Reddit으로 공유하기 (새 창에서 열림) 레딧
  • Pinterest에서 공유하려면 클릭하세요 (새 창에서 열림) Pinterest
  • Telegram에 공유하려면 클릭하세요. (새 창에서 열림) Telegram
  • WhatsApp에 공유하려면 클릭하세요. (새 창에서 열림) WhatsApp

이것이 좋아요:

좋아하기 가져오는 중...

Recent Posts

  • OpenShift 인증서 날짜는 어떻게 확인할까요? 2025-09-11
  • AI가 내부 자료를 연결해, 이제는 전문가처럼 답한다고? – CogentAI 2025-09-11
  • OPENMARU CogentAI: IT 운영자를 위한 지능형 AI 에이전트 플랫폼 2025-09-05
  • [자료다운로드] AI 기반 MSA, 쿠버네티스, 옵저버빌러티 기술지원 서비스 2025-09-01
  • 🚀 Kubernetes에서 Java Agent 배포, 이제 Operator로 간단하게! 2025-08-28

Categories

  • APM
  • Cloud
  • Cloud Native Seminar
  • Cluster
  • gift
  • JBoss
  • Kubernetes
    • Container
  • Linux
  • Microservices Architecture
  • News
  • Newsletter
  • OPENMARU
    • Dashboard
  • OpenShift
  • Red Hat
  • Seminar
    • gift
  • Tech Talk
  • 발표자료
  • 분류되지 않음
  • 오픈나루 공지사항
  • 오픈소스

이메일로 블로그 구독하기

이 블로그를 구독하고 이메일로 새글의 알림을 받으려면 이메일 주소를 입력하세요

태그

AI APM cloud Cloud Native Container Docker Hybrid Cloud jboss JBoss EAP Kubernetes Kubernetes 모니터링 linux MSA MSAP.ai Native OPENMARU OPENMARU APM OPENMARU SaaS형 APM OpenShift PaaS 플랫폼 Red Hat redhat Red Hat Linux RHEL tomcat WAS 가상화 네이티브 도커 레드햇 리눅스 모니터링 브리핑 세미나 애플리케이션 오픈마루 오픈마루 APM 오픈시프트 주간 컨테이너 쿠버네티스 클라우드 클라우드 네이티브 클라우드네이티브 클라우드 네이티브 세미나

Search

Search Search

오픈마루

04778 서울시 성동구 뚝섬로1길 31 906 호
(성수동1가, 서울숲M타워)

Tel : 02-469-5426 | Fax : 02-469-7247
Email : sales@openmaru.io

  • OPENMARU CLOUD APM
    • Application 모니터링
    • Openshift & Kubernetes 모니터링
    • WEB/WAS 모니터링
    • URL 모니터링
    • Cubrid 모니터링
  • 가격안내
  • 고객 레퍼런스
  • 고객지원
    • 문서
    • 사용자가이드
    • 기술지원
  • 블로그
  • 이용약관
  • 개인정보처리방침
  • 서비스수준협약
  • 회사소개
Copyright © OPENMARU, Inc. All Rights Reserved. - powered by Enfold WordPress Theme
  • Link to Facebook
  • Link to LinkedIn
  • Link to X
  • Link to Youtube
Link to: AI가 내부 자료를 연결해, 이제는 전문가처럼 답한다고? – CogentAI Link to: AI가 내부 자료를 연결해, 이제는 전문가처럼 답한다고? – CogentAI AI가 내부 자료를 연결해, 이제는 전문가처럼 답한다고? –...오픈마루 뉴스레터 | 뉴스레터로 알아보는 클라우드 네이티브 주간 브리핑
Scroll to top Scroll to top Scroll to top
  • 한글
  • English
%d