FTPS 인증서 확인
FTPS 서버의 TLS 인증서를 살펴봅니다. 만료일, 발급자, 주체, 그리고 자체 서명 인증서인지까지 확인할 수 있습니다.
자주 보는 오류 설명
550
SSL/TLS required on the control channel. 암시적 모드(포트 990)를 쓰고 있지만, 서버는 명시적 FTPS(포트 21의 AUTH TLS)를 씁니다. 암호화 모드를 명시적(Explicit) / STARTTLS로 바꾸고 포트를 21로 설정하세요.
TLS
TLS 핸드셰이크 실패 또는 포트 990 연결 거부. 서버가 포트 990의 암시적 FTPS가 아니라 포트 21의 명시적 FTPS를 씁니다. 모드를 명시적(Explicit) / STARTTLS로 바꾸세요.
534
Request denied for policy reasons. 위의 550과 같은 경우입니다. 포트 21의 명시적 모드로 바꿔 보세요.
서버가 어떤 모드를 쓰는지 모르겠다면 FTP 포트 점검으로 어느 포트가 열려 있는지 확인하거나, 서버 관리 화면을 확인하세요.
이 도구가 확인하는 항목
- 인증서 주체: 인증서가 발급된 도메인 또는 호스트 이름.
- Subject Alternative Names: 인증서가 함께 보장하는 다른 호스트 이름이나 IP 주소.
- 발급자와 CA 체인: 신뢰할 수 있는 인증 기관이 서명한 인증서인지.
- 만료일: 인증서가 만료되기까지 남은 일수.
- 키 알고리즘과 길이: 인증서 공개 키의 종류(예: RSA)와 비트 길이.
- 서명 알고리즘: 인증서 서명에 쓰인 해시 알고리즘(예: sha256RSA).
- 일련번호: 인증 기관이 부여한 고유 식별자.
- 자체 서명 여부: 인증서가 자체 서명인지(사설 FTP 환경에서 흔함).
- 지문(Thumbprint): 핀 고정(pinning)이나 직접 대조에 쓰는 SHA-1 지문.
- 인증서 버전: 인증서의 X.509 버전(최신 인증서는 대부분 v3).
명령줄에서 확인하기
OpenSSL로도 같은 인증서를 읽을 수 있습니다. Git for Windows(Git Bash)에 들어 있고, 대부분의 리눅스와 macOS에도 있습니다. 포트 21의 명시적 FTPS와 포트 990의 암시적 FTPS는 각각 다음과 같습니다.
openssl s_client -connect ftp.example.com:21 -starttls ftp </dev/null | openssl x509 -noout -subject -issuer -dates
openssl s_client -connect ftp.example.com:990 </dev/null | openssl x509 -noout -subject -issuer -dates
출력에는 인증서를 누구에게 발급했는지, 누가 발급했는지, 유효 기간이 나옵니다. 비교할 지문이 필요하면 openssl x509 부분에 -fingerprint -sha256을 추가하세요.
자체 서명 인증서라고 해서 그 자체로 문제는 아닙니다. 사설 서버는 많이들 씁니다. 중요한 것은 그 지문을 서버 관리자와 한 번 대조해 두는 것, 그리고 지문이 바뀌면 클라이언트가 알려 주는 것입니다. FTPie는 FTPS 인증서를 처음 볼 때 보여 주고, 인증서가 바뀌면 다시 보여 줍니다.