반응형

nodejs -- http -> https 변환 ( redirect )



환경 : 네이버 클라우드 플랫폼 무료 서버, Ubuntu 18.04 LTS, noce.js v14.15.3



http 로 접속하면, https 주소로 redirect 시키자




http -- 80 포트 사용
https -- 443 포트 사용




** Express 에서, http & https 를 구별하는 법 3가지
(1) req.secure
(2) req.protocol
(3) req.headers['X-Forwarded-Proto']



** 방법 1. -- req.protocol 또는 req.headers["X-Forwarded-Proto"] 이용

app.get("*", (reqresnext=> {
    console.log("middleware sercure app2 ==> " + req.headers['X-Forwarded-Proto']);
    console.log("req.protocol == " + req.protocol);

    let protocol = req.headers['X-Forwarded-Proto'] || req.protocol;
    console.log("protocol == " + protocol);
    
    if(protocol == 'http'){
        let to = "https://" + req.headers.host + req.url;
        console.log("to ==> " + to);

        return res.redirect(to);
    }
    next();
})


** 방법2. -- req.secure 이용

app.get("*", (reqresnext=> {
    console.log("req.secure == " + req.secure);
    
    if(req.secure){
        // --- https
        next();
    }else{
        // -- http
        let to = "https://" + req.headers.host + req.url;
        console.log("to ==> " + to);

        return res.redirect("https://" + req.headers.host + req.url);
    }
})













반응형
Posted by 자유프로그램
,