annyoung

https local domain with self-signed certificate 본문

프로그래밍

https local domain with self-signed certificate

nopsled 2022. 4. 15. 20:08

소위 말해 도메인 구입 없이 가라 도메인으로 ssl 적용하는 방법에 대해서 설명한다.

해당 방법은 개발 보다는 모의해킹할 때 사용하면 좋을 것 같다.

 

127.0.0.1   example.com

우선 /etc/hosts를 위와 같이 수정해서 도메인과 아이피를 매핑시킨다.

 

openssl req -x509 -out example.com.crt -keyout example.com.key \
  -newkey rsa:2048 -nodes -sha256 \
  -subj '/CN=example.com' -extensions EXT -config <( \
   printf "[dn]\nCN=example.com\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:example.com\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")

openssl로 SSL 인증서에 필요한 cert, key를 생성한다.

 

npm install express

express 설치

 

const express = require('express');
const app = express();
const fs = require('fs');
const https = require('https');

const sslOptions = {
    key: fs.readFileSync("./ssl/example.com.key"),
    cert: fs.readFileSync("./ssl/example.com.crt")
};

new Promise(resolve => {
    https.createServer(sslOptions, app).listen(443);
    resolve();
}).then(() => {
    console.log('[*] SSL Server Running...');
});

app.get('/', (req, res) => {
    res.send('Hell World!');
});

Nodejs 구성

 

node app.js

SSL 서버 실행

 

도메인 접속

https://example.com 도메인 접속 시 SSL 적용안된다고 하는데 고급 누르고 example.com(안전하지 않음)(으)로 이동 클릭

 

위와 같이 접속 되는걸 볼 수 있다.

Comments