
개요
요즘 홈 서버 구축간 정말 다양한 일들이 있었지만, 오늘 힘겹게 찾아내고 너무나도 쉽게 해결한 문제를 공유하고자 한다.
그 문제의 발상지는 Linux 시스템을 웹 콘솔에서 모니터링 할 수 있는 COCKPIT 이라는 패키지에서 발생하였다.
문제 상황
다음의 내용은 cloud flare ternnering => nginx => cockpit의 파이프라인에서 인증서 핸드셰이킹간 발생하였다.
정말 멍청하게도 클라우드 플레어 터널링을 진행하고 로컬에서는 되는데 왜 터널링에서는 동작을 안할까 하고 엔진엑스 스크립트만 바꾸고 있었기 때문에, 해결하지 못 하고 있었다. 허나, 정답은 가장 가깝고도 쉬운.. cockpit 설정에 있었다...
cockpit-tls[7541]: cockpit-tls: gnutls_handshake failed: A TLS fatal alert has been received.
문제 해결
클라우드 플레어 터널링 후, 엔진엑스 스크립트를 바꿔 리버스 프록시를 잡아주었다.
하지만, cockpit 의 Origins와 WebSocket 스크립트를 바꿔주지 않은것이 아닌가..!!
이하 내용과 같이 엔진엑스에 설정한 네임서버를 설정에 쏙하고 넣어주면 기적처럼 잘 동작한다..
[WebService]
Origins = https:<NGINX NAMESERVER> wss://<NGINX NAMESERVER>
ProtocolHeader = X-Forwarded-Proto
AllowUnencrypted = true
참조
Cockpit (252-1)doesn't work with Cloudflare Argo Tunneling · Issue #16396 · cockpit-project/cockpit
Cockpit version: 252-1 OS: Linux ubuntu-02 5.13.0-16-generic #16-Ubuntu SMP Fri Sep 3 14:53:27 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux Page: N/A I'm trying to put Cockpit behind a Cloudflare Tunnel...
github.com