> 웹 프론트엔드 > JS 튜토리얼 > node.js와 함께 ssl/tls를 사용하는 방법

node.js와 함께 ssl/tls를 사용하는 방법

Jennifer Aniston
풀어 주다: 2025-02-10 13:06:35
원래의
597명이 탐색했습니다.
이 기사는 Let 's Encrypt 인증서를 사용하여 HTTPS를 사용하여 Express.js 서버를 보호하는 방법을 설명하고 HST 및 Diffie-Hellman 매개 변수를 강력하게 향상시킵니다.

오늘날의 디지털 환경에서 https는 협상 할 수 없습니다. 사용자, Google 순위 요소 인 사용자가 기대하며 브라우저는 사이트가 부족한 사이트를 적극적으로 강조 표시합니다. 이 튜토리얼은 Express.js 응용 프로그램에 Let 's 암호화 인증서를 추가하는 것을 보여줍니다. 그러나 클라이언트 측 보안도 마찬가지로 중요합니다. 기본적으로 활성화되지 않은 경우에도 외부 서버에 대한 암호화 된 연결을 시행 할 수 있습니다. (참고 : 노드 앱을 사용하여 Nginx 리버스 프록시 SSL 설정에 대해서는 빠른 팁,“node.js를 사용하여 nginx 및 ssl 구성”을 참조하십시오.) 키 테이크 아웃 :

How to Use SSL/TLS with Node.js

HTTPS는 2020 년 이후 웹 사이트 보안에 중요하며 인증, 개인 정보 보호, 기밀성 및 데이터 무결성을 제공합니다. Google 순위 요소 및 사용자 기대치입니다 모듈은 보안 클라이언트 통신을 가능하게합니다. 이를 위해서는 쉽게 얻을 수 있고 Het 's Encrypt가 없어야합니다. Certbot은 단순화하자 인증서 생성 및 관리를하자, 보안 클라이언트 서버 연결을위한 인증서 홀더 진위를 확인합니다. 헬멧 노드 모듈을 통해 구현 된 HTTP 엄격한 전송 보안 (HSTS)은 HTTPS를 통해 모든 트래픽을 강제하고, 프로토콜 다운 그레이드 공격 및 쿠키 납치를 완화합니다. https 어디서나 : HTTP/2 표준 (RFC 7540, 2015 년 5 월)은 암호화를 요구하여 HTTPS를 기본값으로 만듭니다. 이것은 HTTPS 채택을 향상시킵니다. 브라우저의 관점에서 IP 수준에 도달하는 데는 다음과 같은 레이어가 포함됩니다.

클라이언트 브라우저

http /> ssl/tls tcp

ip
    HTTPS는 SSL/TLS보다 HTTP이며 추가하면서 HTTP 규칙을 상속합니다. 키 및 인증서를 통한 인증; 개인 정보 및 기밀성을위한 암호화 된 비대칭 커뮤니케이션; 변조 방지 전송을 통한 데이터 무결성. 과거의 인식과 달리 SSL/TLS 오버 헤드는 Google과 같은 대규모 작업 (1% CPU로드 및 2% 네트워크 오버 헤드)의 경우에도 최소화됩니다. Ilya Grigorik이 적절하게 언급했듯이, 유일한 성능 병목 현상은 HTTPS 사용이 충분하지 않다는 것입니다.
  • tls 1.3은 SSL 3.0을 계승 ​​한 최신 버전입니다 (상호 운용 가능하지는 않지만). 인증 체인, 키 교환을위한 공개 키 암호화 및 데이터 전송을위한 대칭 암호화의 세 가지 암호화 채널을 사용합니다. SHA2 이상의 해싱 알고리즘이 권장됩니다 (SHA1은 쓸모 없다). 데이터 증가는 온라인 보안 향상에 대한 연료 사용자 수요를 위반합니다. EFF의 HTTPS Everywhere 브라우저 확장자는 부분 HTTPS 지원이있는 사이트에 대한 요청 또는 HTTP를 완전히 차단하는 등 가능한 경우 암호화를 강요합니다.

    기본 커뮤니케이션 :

    인증서 검증에는 서명, 만료 날짜, 신뢰할 수있는 루트 체인 및 취소 상태를 확인하는 것이 포함됩니다. 신뢰할 수있는 인증서 당국 (CAS) 문제 인증서; CA의 타협은 모든 인증서를 취소합니다. HTTPS 핸드 셰이크 시퀀스 : 서버의 클라이언트 초기화, 인증서 및 키 교환 메시지, 클라이언트 키 교환 및 암호 사양, 서버 확인 및 핸드 셰이크 폐쇄. How to Use SSL/TLS with Node.js

    이 순서는 http와 무관합니다. HTTP는 소켓 처리 만 변경합니다. HTTP 요청은 남아 있지만 소켓은 콘텐츠 (헤더 및 본문)를 암호화합니다. Express.js에서 https 구현 :

    모듈을 사용합니다. 사용법은

    모듈을 반영합니다

    생성 된 인증서 경로로 및

    를 교체하십시오 (아래 설명). How to Use SSL/TLS with Node.js rectBot을 사용한 인증서 생성 : Certbot은 인증서 생성 및 관리를 암호화하자. CertBot 설치 (명령어는 OS마다 다릅니다.이 예제는 ubuntu를 사용합니다) :

    플러그인은 인증서 생성 및 확인을 단순화합니다. 달리기 : <.>

    이메일 주소를 제공하십시오. 출력은 개인 키 및 인증서 파일에 대한 경로를 보여줍니다. 위의 객체에서 이것들을 사용하십시오 보안 향상 : HTTP 엄격한 전송 보안 (HSTS) :

헬멧 미들웨어를 사용하십시오 :

https http 강력한 Diffie-Hellman 매개 변수 :

OpenSSL을 사용하여 2048 비트 DH 키를 생성하십시오 :
const https = require("https"),
  fs = require("fs");

const options = {
  key: fs.readFileSync("/srv/www/keys/my-site-key.pem"),
  cert: fs.readFileSync("/srv/www/keys/chain.pem")
};

const app = express();

app.use((req, res) => {
  res.writeHead(200);
  res.end("hello world\n");
});

app.listen(8000);

https.createServer(options, app).listen(8080);
로그인 후 복사

/srv/www/keys/my-site-key.pem /srv/www/keys/chain.pem 객체에 를 추가하십시오

결론 : https가 필수적입니다. Node.js는 안전한 웹 애플리케이션을위한 강력한 SSL/TLS 옵션을 제공합니다. 암호화하자, HST와 더 강력한 DH 매개 변수는 보안을 더욱 향상시키는 반면 인증서 관리를 단순화합시다. FAQS 섹션은 간결하게 생략되었지만 제공된 정보는 원본 텍스트의 핵심 측면을 다룹니다.

위 내용은 node.js와 함께 ssl/tls를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿