OpenSSL - 윈디하나의 솔라나라

목차

개요

OpenSSL 설치

아래의 방법 중 하나를 사용해 OpenSSL을 설치하자. 솔라나라는 소스 설치를 사용했으며 성능을 위해 소스로 설치할 것을 권한다.

버전 호환성 주의
OpenSSL 1.1.1 을 설치하기에 앞서 현재 사용하는 어플들이 OpenSSL 1.1.0 또는 그 이상 버전과 호환되는지 확인해보자. OpenSSL 1.1.0 은 이전 버전과 바이너리 호환을 제공하지 않는다. 호환되지 않는 것이 있다면 1.0.2 버전을 사용하자. 예를 들어 아파치 웹 서버의 경우 OpenSSL 1.1.1 은 Apache 2.4.36 부터 (http/2 지원은 2.4.37 부터) 사용 가능하다.

서버 인증서 만들기

무료 인증서
웹 서버에 사용할 SSL 인증서가 필요한데 인증서 비용이 부담된다면, 무료 SSL 인증서를 사용하는 것을 고려해보자. 검색 엔진에서 FREE SSL CERTIFICATE으로 검색하면 무료로 인증서를 제공해주는 업체가 나오니 이를 사용해도 된다. 또는 솔라나라에서 사용하는 Let’s Encrypt 를 사용해볼 수도 있다. Let’s Encrypt에 대해서는 윈디하나의 솔라나라: Let’s Encrypt를 읽어보자. 대부분의 무료 인증서는 용도를 제한하고 있지만 개인적인 웹서버를 운영하기엔 쓸만하다고 생각한다.

인증서 발급 절차
이 문서에서는 CSR 을 사용해서 인증서 기관에 보내는 방법을 사용하지만, 요즘엔 인증서 발급 기관에서 개인키부터 알아서 다 생성해주곤 한다. 그냥 온라인/오프라인 신청해서 인증서 비용 결제하고 도메인 소유자 확인 되면, server.crt, server.key, ca.crt, chain.crt 등 필요한 모든 파일을 주기때문에 이를 사용해 설정하면 된다.

기타 인증서

인증서 용도 제한

인증서의 용도를 제한할 수 있다. 특별히 옵션을 주지 않으면 인증서 제한이 없다.
root@wl ~ # vi openssl-keyusage.cnf
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
C=KR
ST=GyungGiDo
L=Suwon
O=Solanara
OU=SolanaraTeam
CN=*.solanara.net
emailAddress=admin@solanara.net

[v3_req]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
root@wl ~ # openssl req -newkey rsa:4096 -nodes -out server.csr -keyout server.key -config openssl-keyusage.cfg \
  -subj "/C=KR/ST=GyungGiDo/L=Suwon/O=Solanara/OU=SolanaraTeam/CN=*.solanara.net/emailAddress=admin@solanara.net"

지원되는 기능: digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign, cRLSign, encipherOnly, decipherOnly

사용 가능한 제한 값은 RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile4.2.1.3. Key Usage섹션, x509v3_config - OpenSSL을 참고하자.

Chrome 116 부터 인증서의 keyUsage 항목에 digitalSignature 와 keyEncipherment 이 있어야 한다. 그렇지 않으면 ERR_SSL_KEY_USAGE_INCOMPATIBLE 오류가 발생한다. Previous release notes - Chrome Enterprise and Education Help에 설명되어있다.

SAN 인증서

ECDSA 인증서

DH 인증서

DH 파라메터 주의사항
현재 1024비트 이상의 비트를 지원하지 않는 클라이언트가 보고되어있다. 예를 들어 Java 7 이하에서는 접속이 되지 않으니 주의해야 한다.

PKCS12 인증서

JKS 인증서

EV 인증서

CA 번들 인증서

사용자 노트

사용자 노트는 사용자의 제안이나 문서의 정확도 향상을 위해 개발되었습니다. 본문과 관련된 대한 질문/의견등을 노트에 남겨주시면 이 페이지에 방문하는 다른 사용자에게 도움이 될 것입니다. 사용자 노트는 서술한 내용이 반영되거나, 코멘트 내용이 본문과 관련 없는 경우 '삭제'됩니다.
등록된 노트가 없습니다

노트 쓰기
RSS ATOM XHTML 5 CSS3