DEV Community

Warun C. ⚡
Warun C. ⚡

Posted on

Docker Registry กับใบรับรอง Self-Signed: ไม่ยากอย่างที่คิด (สำหรับ macOS)

ในโลกของ Docker การมี Private Registry เป็นของตัวเองนั้นช่วยให้เราจัดเก็บและแชร์ Image ได้อย่างปลอดภัยและเป็นอิสระ แต่การใช้ใบรับรอง SSL จากผู้ให้บริการภายนอกอาจมีค่าใช้จ่ายสูง บทความนี้จะแนะนำวิธีง่ายๆ ในการเปิดใช้งาน Docker Registry โดยใช้ใบรับรอง Self-Signed บน macOS

ขั้นตอนที่ 1: สร้างใบรับรอง Self-Signed

เราสามารถใช้ OpenSSL ในการสร้างใบรับรองได้ดังนี้

openssl req -x509 -newkey rsa:4096 \
  -keyout ./certs/key.pem -out ./certs/cert.pem \ 
  -days 365 -nodes -subj "/CN=<your-domain>"
Enter fullscreen mode Exit fullscreen mode

คำสั่งนี้จะสร้างไฟล์ key.pem (private key) และ cert.pem (certificate)

ขั้นตอนที่ 2: กำหนดค่า Docker Registry

เราสามารถใช้ Docker Compose ในการจัดการ Docker Registry ได้ง่ายขึ้น โดยสร้างไฟล์ docker-compose.yml ดังนี้

version: "3.8"
services:
  registry:
    image: registry:2
    restart: always
    ports:
      - "5000:5000"
    volumes:
      - ./data:/var/lib/registry
    environment:
      REGISTRY_HTTP_TLS_CERTIFICATE: /certs/cert.pem
      REGISTRY_HTTP_TLS_KEY: /certs/key.pem
    volumes:
      - ./certs:/certs
Enter fullscreen mode Exit fullscreen mode

ขั้นตอนที่ 3: ติดตั้งใบรับรองบน macOS

บน macOS เราจำเป็นต้องติดตั้งใบรับรองเข้ากับ Keychain เพื่อให้ Docker เชื่อถือใบรับรองนี้


openssl s_client -showcerts -connect <your-domain>:5000 </dev/null 2>/dev/null|openssl x509 -outform PEM > ~/.docker/certs.d/<your-domain>:5000/ca.pem

security add-trusted-cert -d -r trustRoot -k ~/Library/Keychains/login.keychain ~/.docker/certs.d/<your-domain>:5000/ca.pem

Enter fullscreen mode Exit fullscreen mode

ขั้นตอนที่ 4: กำหนดค่า Docker Client

สุดท้าย หลังจากติดตั้งใบรับรองแล้ว เราสามารถเข้าสู่ระบบ Docker Registry ผ่าน HTTPS ดังนี้

docker login https://<your-domain>:5000
Enter fullscreen mode Exit fullscreen mode

ข้อควรระวัง:

  • การใช้ใบรับรอง Self-Signed อาจทำให้เกิดความเสี่ยงด้านความปลอดภัย ควรใช้ด้วยความระมัดระวัง
  • ตรวจสอบให้แน่ใจว่าพอร์ต 5000 ของ Registry เปิดอยู่และสามารถเข้าถึงได้

สรุป

การเปิดใช้งาน Docker Registry ด้วยใบรับรอง Self-Signed บน macOS นั้นไม่ซับซ้อนอย่างที่คิด เพียงทำตามขั้นตอนข้างต้น คุณก็สามารถสร้าง Private Registry ที่ปลอดภัยและใช้งานได้ฟรี

หวังว่าบทความนี้จะเป็นประโยชน์สำหรับผู้ที่ต้องการใช้งาน Docker Registry แบบง่ายๆ

อ้างอิง: https://stackoverflow.com/a/56412353

Top comments (0)