IP SSL 인증서
명령 한 줄로 서버 IP 주소용 무료 신뢰 Let's Encrypt HTTPS 인증서를 발급합니다. 도메인 불필요, 자동 설치·자동 갱신.
서버에서 root로 실행
bash <(curl -sL ipk.me/ssl) -l ko 216.73.217.175 -l ko | 보고서 언어(이 페이지와 동일) |
-4 / -6 | IPv4 또는 IPv6만 |
-w /var/www/html | 포트 80 임시 서버 대신 웹 서버의 루트 디렉터리로 검증 |
-r "systemctl reload nginx" | 갱신할 때마다 실행할 명령 (기본: 실행 중인 nginx / Apache / Caddy 리로드) |
-d /etc/ssl/ipk | 인증서 파일 설치 위치 |
-y | 포트 80의 웹 서버를 중지하기 전에 묻지 않음 |
--alpn | 포트 80 대신 포트 443(TLS-ALPN-01)으로 검증 |
--staging | Let's Encrypt 테스트 환경 사용 (신뢰되지 않는 인증서, 시험용) |
203.0.113.10 2001:db8::10 | 포함할 IP. 생략하면 서버의 발신 IPv4 / IPv6를 사용하며, 공인 IP가 더 있으면 어떤 것을 포함할지 묻습니다 |
작동 방식
- 내장된 경량 ACME 클라이언트(bash, openssl, curl만 필요, 임시 검증 서버는 python3)가 Let's Encrypt 단기 프로필로 신청합니다. IP 인증서는 약 6일간 유효하며 3일마다 갱신됩니다.
- 검증은 포트 80(HTTP-01)으로 이루어지므로 IP의 포트 80에 인터넷에서 접근할 수 있어야 합니다. 발급 전에 ipk.me가 외부에서 확인합니다.
- 포트 80이 막혔나요? 포트 443(TLS-ALPN-01)도 됩니다: --alpn을 붙이거나, 443만 접근 가능하면 자동으로 전환됩니다. IP 인증서는 DNS로 검증할 수 없습니다.
- 발급 후 인증서·개인 키 경로와 유효 기간을 출력하고, 스크립트 사본을 /etc/ssl/ipk에 저장하며 매일 실행되는 갱신 작업을 crontab에 추가합니다.
- nginx, Apache 또는 Caddy가 포트 80 / 443을 사용 중이면 발급·갱신 중 몇 초간 중지합니다. -w로 피할 수 있습니다.
- IPv4와 IPv6는 하나의 인증서에 들어갑니다. 사설 및 CGNAT 주소는 발급받을 수 없습니다. 중국 본토에서는 ICP 등록이 없는 서버의 포트 80이 자주 차단됩니다.
- Linux에서 동작합니다. ipk.me로는 IP 주소만 전송되며 개인 키는 서버를 떠나지 않습니다.