여기에 설정입니다 :이중 파이프는 SMTP에 대한 NAT 뒤에 TLS를 중계하는 것 같다하지만 때로는
[Proxy/Relay Server] <---------[(SMTP TLS test client) Test server]
^
|
(Internet) v
--------------+-----------------
|
[Router]
|
|
[ Home email appliance machine
|
(Home email server app (Node.js))
|
(Postfix) ]
그래서이 작은 서버가 집에서 NAT 뒤에. 외부 서버는 IMAP 및 SMTP의 프록시/릴레이로 사용됩니다.
- 가정용 전자 제품 응용 프로그램은 인터넷의 프록시/릴레이 서버에 연결됩니다.
- 가정용 전자 제품 응용 프로그램은 localhost의 SMTP Postfix 포트에 연결합니다.
- 자택 이메일 응용 프로그램은 두 연결 사이에 양방향 파이프를 만듭니다.
- 인터넷의 테스트 서버에서 TLS 가능 SMTP 클라이언트를 프록시/릴레이 서버에 연결하십시오.
- 프록시/릴레이 서버는 프록시 연결과 홈 이메일 어플라이언스에서 기존 연결 사이의 데이터를 전송합니다.
- SMTP 클라이언트가 STARTTLS 프로토콜을 수행합니다.
- 가정용 전자 기기 응용 프로그램은 TLS를 통한 SMTP를 수행하기 위해 파이프를 통해 프록시/릴레이와 로컬 호스트 SMTP간에 데이터를 전송합니다.
우리는 openssl s_client를 사용하여 NAT 뒤의 클라이언트로 데이터를 앞뒤로 전송하는 프록시/릴레이 서버에 대한 TL 연결을 테스트합니다.
일반 텍스트에 잘 작동하지만 TLS에서 일관되게 작동하는지 잘 모르겠습니다. SSL 인증서 등을 사용하여 출력물을 얻는 경우가 종종 있지만 openssl s_client 명령을 사용하지만 일반적으로 CONNECTED라고 표시되고 거기에 앉아 있습니다. 그러한 경우에 작동하는지 확신하지 못합니다.
기본적으로 후위와 컴퓨터에 NAT (라우터) 뒤에 실행의이 코드는 (일부 보안 물건이있다 그러나 이것은 기본적이다) :
나는 밖으로 내려고 노력하고 무엇proxyOutgoing = net.connect(proxyport, proxyhost)
localSMTP = net.connect(587, 'localhost')
localSMTP.pipe(proxyOutgoing).pipe(localSMTP)
가있다 openssl s_client 테스트 또는 TLS가 일반적으로 '작동'하는 것으로 나타나는 경우가 종종 발생합니다. 어떻게 든 파이프 또는 이상한 것을 내뿜을 필요가 있나요? 그것은 Connected (000003)라고 말하고 있지만 대개 그냥 인증서 정보가 없습니다.
하나의 이론은 tlsmgr이 세션을 캐싱하고 있다는 것이므로 이미 설정 한 이후 STARTTLS 항목을 보지 못했습니다.
의견이나 아이디어를 가진 사람에게 감사드립니다.
이 코드가 무엇이고 어떤 부분에 연결되어 있는지 이해하는 데 어려움을 겪고 있습니다. 아마도 다이어그램일까요? –
감사합니다. 나는 그것을 훨씬 분명하게 만들었습니다. –