Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

다히의 개발일지

[리눅스] ssl 인증서 발급 본문

다히의 피땀눈물/ETC

[리눅스] ssl 인증서 발급

mindarrrr 2019. 9. 3. 15:01

사실 리눅스 ssl 인증서 발급할 때 도움이 되었던 페이지가 있다.

그걸 따라해봤다고 또 좀 끄적이는 거...? 맞쑵니당! 어차피 나만 들어오거둥요!

 

웹서비스에 https 를 적용할 경우 ssl 인증서를 발급받아야 하는데 비용이 들기 때문에

openssl을 이용하여 인증기관을 만들고 self signed certificate를 생성하고  발급된 인증서를 통해 https 서비스 제공받을 수 있다.

 

ROOT CA  인증서 생성 ]

- ROOT CA  인증서 생성 

openssl genrsa -aes256 -out /etc/pki/tls/private/local-rootca.key 2048

- 개인키 권한 설정 (group 과 other의 permission 제거) 

chmod 600  /etc/pki/tls/private/lesstif-rootca.key

-csr 생성을 위해 rootca_openssl.conf 저장

...더보기

[ req ]

default_bits            = 2048

default_md              = sha1

default_keyfile         = local-rootca.key

distinguished_name      = req_distinguished_name

extensions             = v3_ca

req_extensions = v3_ca

  

[ v3_ca ]

basicConstraints       = critical, CA:TRUE, pathlen:0

subjectKeyIdentifier   = hash

##authorityKeyIdentifier = keyid:always, issuer:always

keyUsage               = keyCertSign, cRLSign

nsCertType             = sslCA, emailCA, objCA

[req_distinguished_name ]

countryName                     = Country Name (2 letter code)

countryName_default             = KR

countryName_min                 = 2

countryName_max                 = 2

 

# 회사명 입력

organizationName              = Organization Name (eg, company)

organizationName_default      = local Inc.

  

# 부서 입력

#organizationalUnitName          = Organizational Unit Name (eg, section)

#organizationalUnitName_default  = Condor Project

  

# SSL 서비스할 domain 명 입력

commonName                      = Common Name (eg, your name or your server's hostname)

commonName_default             = local's Self Signed CA

commonName_max                  = 64 

-인증서 요청

openssl req -new -key /etc/pki/tls/private/local-rootca.key -out /etc/pki/tls/certs/local-rootca.csr -config rootca_openssl.conf

 

- 10년 짜리 self-signed 인증서 생성 <중요>

openssl x509 -req \

-days 3650 \

-extensions v3_ca \

-set_serial 1 \

-in /etc/pki/tls/certs/lesstif-rootca.csr \

-signkey /etc/pki/tls/private/lesstif-rootca.key \

-out /etc/pki/tls/certs/lesstif-rootca.crt \

-extfile rootca_openssl.conf

- 확인

openssl x509 -text -in /etc/pki/tls/certs/lesstif-rootca.crt

 

[ SSL 인증서 생성 ]

SSL 호스트에서 사용할 RSA 키 생성

openssl genrsa -aes256 -out /etc/pki/tls/private/local.com.key 2048

- 개인키 pass phrase 제거

cp  /etc/pki/tls/private/local.com.key  /etc/pki/tls/private/local.com.key.enc

openssl rsa -in  /etc/pki/tls/private/local.com.key.enc -out  /etc/pki/tls/private/local.com.key

-개인키 보안 

chmod 600  /etc/pki/tls/private/local.com.key*

-CSR 생성

...더보기

[ req ]

default_bits            = 2048

default_md              = sha1

default_keyfile         = local-rootca.key

distinguished_name      = req_distinguished_name

extensions             = v3_user

## 인증서 요청시에도 extension 이 들어가면 authorityKeyIdentifier 를 찾지 못해 에러가 나므로 막아둔다.

## req_extensions = v3_user

 

[ v3_user ]

# Extensions to add to a certificate request

basicConstraints = CA:FALSE

authorityKeyIdentifier = keyid,issuer

subjectKeyIdentifier = hash

keyUsage = nonRepudiation, digitalSignature, keyEncipherment

## SSL 용 확장키 필드

extendedKeyUsage = serverAuth,clientAuth

subjectAltName          = @alt_names

[ alt_names]

## Subject AltName의 DNSName field에 SSL Host 의 도메인 이름을 적어준다.

## 멀티 도메인일 경우 *.local.com 처럼 쓸 수 있다.

DNS.1   = www.local.com

DNS.2   = local.com

DNS.3   = *.local.com

 

[req_distinguished_name ]

countryName                     = Country Name (2 letter code)

countryName_default             = KR

countryName_min                 = 2

countryName_max                 = 2

 

# 회사명 입력

organizationName              = Organization Name (eg, company)

organizationName_default      = local Inc.

  

# 부서 입력

organizationalUnitName          = Organizational Unit Name (eg, section)

organizationalUnitName_default  = local SSL Project

  

# SSL 서비스할 domain 명 입력

commonName                      = Common Name (eg, your name or your server's hostname)

commonName_default             = local.com

commonName_max                  = 64

- 인증서 요청

openssl req -new  -key /etc/pki/tls/private/local.com.key -out /etc/pki/tls/certs/local.com.csr -config host_openssl.conf

-인증서 발급

openssl x509 -req -days 1825 -extensions v3_user -in /etc/pki/tls/certs/local.com.csr \

-CA /etc/pki/tls/certs/local-rootca.crt -CAcreateserial \

-CAkey  /etc/pki/tls/private/local-rootca.key \

-out /etc/pki/tls/certs/local.com.crt  -extfile host_openssl.conf

-확인

openssl x509 -text -in /etc/pki/tls/certs/local.com.crt

 

참고 문헌 :  https://www.lesstif.com/pages/viewpage.action?pageId=6979614https://www.lesstif.com/pages/viewpage.action?pageId=6979614

 

음 근데 지금 헷갈리는 건 WILD CARD 공인 인증서 를 넣어야 하는지 ..의 여부이다.