관리 메뉴

가끔 보자, 하늘.

OpenSSL을 이용해 사설 인증서 생성과 사용 방법(간략 정리) 본문

개발 이야기/개발 및 서비스

OpenSSL을 이용해 사설 인증서 생성과 사용 방법(간략 정리)

가온아 2021. 7. 2. 17:59

인증서와 관련된 이야기는 이 전에 기록한 글이 있어 생략합니다.

 

[[ 인증기관( CA, Certificate Authoroty) 의 개인키와 인증서 생성 ]]

 

CA private key 생성
 > genrsa -des3 -out root_private.key 2048


CA의 CSR(Certificate Signing Request) 생성. (csr에는 공개키와 알고리즘 정보를 포함됩니다.)
 > req -new -key root_private.key -out root.csr


CA의 인증서를 생성합니다.
 > x509 -req -days 3650 -in root.csr -signkey root_private.key -out root.crt

 


[[ 사용처(웹 서버 등)를 위한 개인키와 인증서 생성 ]]

 

사용처를 위한 개인키 생성
 > genrsa -des3 -out server.key 2048

 

사용처를 위한 CSR 생성
 > req -new -key server.key -out server.csr

 

사용처를 위한 인증서 생성
 > x509 -req -in server.csr -out server.crt -signkey server.key -CA root.crt -CAkey root_private.key -CAcreateserial -days 3650

 

[[ 웹 서버에 적용하기 - 링크 ]]

[[ Nodejs 에 적용하기 ]]

 - 사용처가 nodejs 일 경우 사용할 경우 pem 파일 형식으로 변환하여 사용합니다. 


개인키를 pem으로 변환하기 
 > rsa -in server.key -out server_private.pem


crt를 pem으로 변환하기
 > x509 -inform PEM -in server.crt -out server_public.pem

코드에 적용

.

.

const sslOptions = {
key : fs.readFileSync('./server_private.pem'),
cert : fs.readFileSync('./server_public.pem')
};

https.createServer(sslOptions, app,(req,res) => 

.

.

.

 

반응형