이번에는 Express가 로컬에서 HTTPS를 테스트하는 방법과 HTTPS를 로컬에서 테스트할 때 주의사항이 무엇인지 보여드리겠습니다. 실제 사례를 살펴보겠습니다.
내 환경
Amazon(AWS)의 우분투 가상 머신.
node
openssl
인증서 생성
다음 명령을 입력하면 현재 폴더는 localhost.key 및 localhost.cert를 생성합니다.
openssl genrsa -out localhost.key 2048 openssl req -new -x509 -key localhost.key -out localhost.cert -days 3650 -subj /CN=localhost
여기서 localhost는 도메인 이름입니다. 다른 도메인 이름으로 변경하려면 위의 모든 localhost를 해당 도메인 이름으로 바꾸세요.
저를 예로 들어 보겠습니다. , I 가상 머신의 도메인 이름은 xxx.compute.amazonaws.com
입니다. 위의 모든 로컬 호스트를 이 도메인 이름으로 바꾸면 ec2-34-220-이 생성됩니다. 96-9.us-west -2.compute.amazonaws.com.key
및 ec2-34-220-96-9.us-west-2.compute.amazonaws.com.cert
code> 두 파일.xxx.compute.amazonaws.com
, 就以这个域名替换上面所有的localhost, 会生成, ec2-34-220-96-9.us-west-2.compute.amazonaws.com.key
和 ec2-34-220-96-9.us-west-2.compute.amazonaws.com.cert
两个文件.
更新
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
如果不想用密码保护私钥, 加上-nodes.
加上-subj '/CN=localhost'
可以设置certificate的内容. 将其中的localhost
替换成你的域名.
参考:How to create a self-signed certificate with openssl?
代码
想要运行如下代码, 需要先安装包
npm init npm i -S https express
创建文件index.js, 内容如下.
#!/usr/bin/env node var https = require('https'); var fs = require('fs'); var express = require('express'); var host = 'xxx.compute.amazonaws.com'; // Input you domain name here. var options = { key: fs.readFileSync( './' + host + '.key' ), cert: fs.readFileSync( './' + host + '.cert' ), requestCert: false, rejectUnauthorized: false }; var httpApp = express(); var app = express(); app.get('/', function (req, res) { res.send('hi HTTPS'); }); httpApp.get('/', function (req, res) { res.send('hi HTTP'); }); httpApp.listen(80, function () { console.log('http on 80'); }); var server = https.createServer( options, app ); server.listen( 443, function () { console.log( 'https on 443' ); } );
启动服务器
sudo node index.js
访问
浏览器中输入http://xxx.compute.amazonaws.com/
就会以80端口访问HTTP服务器. 显示hi HTTP
.
输入https://xxx.compute.amazonaws.com/
就会以443端口访问HTTPS服务器, 显示hi HTTPS
rrreee비밀번호로 개인키를 보호하고 싶지 않다면 -nodes.
를 추가하세요.
-subj '/CN=localhost '
를 사용하여 인증서 내용을 설정하세요. 참조: openssl로 자체 서명된 인증서를 만드는 방법
Code
If 다음 코드를 실행하려면 먼저 설치해야 합니다. 패키지
다음 내용으로 index.js 파일을 만듭니다.rrreee서버 시작
rrreee
http 입력 브라우저에서 ://xxx.compute.amazonaws.com/
HTTP 서버는 포트 80에서 액세스됩니다. hi HTTP
가 표시됩니다. 🎜🎜https:/를 입력하세요. /xxx.compute.amazonaws.com/
및 HTTPS는 포트 443 서버에서 액세스되며 hi HTTPS
를 표시합니다.🎜🎜🎜Reference🎜🎜🎜Node에 대한 자체 서명된 신뢰할 수 있는 인증서. js & Express.js🎜🎜이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 믿습니다. 더 흥미진진한 PHP 중국어 웹사이트에서 다른 관련 기사도 주목해 주세요! 🎜🎜추천 도서: 🎜🎜🎜JS 작업 페이지 배경 어두움🎜🎜🎜🎜🎜실용 프로젝트에서 jquerylayur 팝업 레이어 사용 방법🎜🎜🎜위 내용은 Express를 사용하여 로컬에서 HTTPS를 테스트하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!