OpenSSL을 이용해 사설 인증서 생성과 사용 방법(간략 정리)
인증서와 관련된 이야기는 이 전에 기록한 글이 있어 생략합니다.
[[ 인증기관( 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) =>
.
.
.