Sangil's blog

https://github.com/ChoiSangIl Admin

certbot-auto has insecure permissions! 오류 DEV / SERVER

2020-05-28 posted by sang12


Letsencrypt를 사용하여 무료로 https를 사용하고 있는데요. 해당 인증서는 3개월 마다 갱신을 해줘야 하는데 드디어 그 기간이 왔네요. 하지만 cerbot-auto renew명령어를 치니 빨간줄이 쭉쭉 나오며 오류를 뿜내요.. (결국 기존 인증서를 삭제하고 다시 만듬) 하지만 그전에 위 오류가 나와서 삽질해서 이렇게 기록을 남깁니다. 

https://community.letsencrypt.org/t/certbot-auto-deployment-best-practices/91979 해당 사이트를 보면 자세히 나와 있는데요 cerbot-auto 파일을 /usr/local/bin 경로로 옮겨주면 거짓말처럼 사라지는걸 볼 수 있습니다. 

REPLY

Spring Boot 무료 Https 인증서(SSL) 발급하기 (letsencrypt) DEV / SERVER

2020-03-15 posted by sang12


이번에 블로그에 https를 적용하면서 letsencrtpt를 이용하여 스프링부트와 CentOs 환경에서 인증서를 발급받는 방법을 알아 보겠습니다. 
저는 https://github.com/certbot/certbot 깃허브 페이지에서 해당 소스를 clone해서 받아오는 방법을 이용하여 발급하였습니다.

yum install -y git 
git clone https://github.com/letsencrypt/letsencrypt
 

깃으로 해당 소스를 받아왔다면 아래와 같이 자신의 이메일과 도메인 주소를 입력합니다.

./certbot-auto certonly --manual --email sang12@kakao.com -d test.co.kr

그리고 개인정보 아이피등이 활용될수있다는 것에 동의를 해주면 하나의 토큰값을 발급해줍니다.

해당 토큰값을 저의 사이트(test.co.kr/.well-known/~)에 인증을 해야 최종적으로 인증서가 발급됩니다. (putty로 서버에 붙어서 사용하는데 저 값을 복사할려고 컨트롤 c를 누를때마다 저 창이 꺼져서...부들부들했습니다 오른쪽마우스 키를 눌러도...동일... 그래서 저는 putty 상단창에서 오른쪽마우스 클릭하면 클립보드로 전체복사키가 있는데요 그걸 이용해서 복사해서 사용했습니다)

그럼 스프링부트에서 해당 위값이 나오게 수정을 해야하는데요. 아래와 같이 추가를 해줬습니다.

@RequestMapping(value = "/.well-known/acme-challenge/your tocken")
    @ResponseBody
    public String applyHttps(HttpServletResponse response) {
	return "your tocken";
    }

그리고 엔터를 눌러주면 /etc/letsencrypt/live/sang12.co.kr 해당 경로에 .pem 파일을 생성해주는데요 톰캣에서 인증서를 사용하기 위해서 아래와 같은 명령어를 사용해줍니다.  그럼 암호를 입력하라고 뜨는데 인증서에 사용할 암호를 입력합니다.

openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name airpageserver -CAfile chain.pem -caname root

여기까지 SpringBoot에서 https를 인증서를 발급하는 방법을 알아보겠습니다. 이제 톰캣서버에 해당 인증서를 적용해봐야 겠네요.

#Spring Boot https 무료 인증서 #Spring Boot 인증서 발급 #letsencrypt 인증서 발급 #centos letsencrypt 발급
REPLY

node Js oracle procedure(프로시저) 실행 & DPI-1002 오류 DEV / SERVER

2020-02-25 posted by sang12


node Js에서 오라클로 프로시저를 실행하려고 하는데 해당 오류가 발생. DPI-1002: invalid dpiConn handle
커넥션 맺고 하는 부분은 아실거라 생각하고 생략!

문제의코드

var params = {
   P_RETURN:  { dir: oracledb.BIND_OUT }
};

await connection.execute( "CALL SP_TEST_CHOI(:P_RETURN)",
  params,
  function (err, ret) {
    if (err) {
      console.log('failed', err);
    } else {
      console.log(ret);
    }
  }
)

수정한 코드1

var params = {
   P_RETURN:  { dir: oracledb.BIND_OUT }
};

await new Promise (resolve => 
    connection.execute( "CALL SP_TEST_CHOI(:P_RETURN)",
    params,
    function (err, ret) {
       if (err) {
           console.log('failed', err);
       } else {
       console.log(ret);
       }
    }
));

- 수정한코드 최종 async/await으로 변경


var params = {
  P_RETURN:  { dir: oracledb.BIND_OUT }
};

let result = await connection.execute(
  'CALL HANMISHOP.SP_TEST_CHOI(:P_RETURN)',
  params
)
console.log(result);

#노드 oracle 프로시저 실행 #node 프로시저 실행 #node oracle 프로시저 #node oracle procedure 실행 #node oracle procedure await
REPLY