클라우드 네이티브 애플리케이션 부트캠프 알림

티스토리 뷰

openssl은 테스트나 학습 목적으로 SSL을 사용할 때 테스트 인증서를 만드는 유틸리티입니다. 

실제 SSL로 서비스를 하기 위해서는 공인된 루트 인증기관(CA: Certification Authority. Verisign, Comodo)으로 부터 유료 인증서를 받아야 합니다. 

SSL 인증서 만들기

인증서를 만드는 과정은 3단계입니다. 

인증서 key 만들기 -> CSR(Certificate Signing Request)파일 만들기 -> 인증서(.pem 또는  .crt) 만들기

각 단계의 명령은 아래와 같습니다. 

- 인증서 key 만들기: openssl genrsa -out {인증서 이름}.key {인증서 암호화 bit}

- CSR 만들기: openssl req -new -key {key파일명} -out {인증서 이름}.csr

- 인증서 만들기:  openssl x509 -req -days {유효기간} -in {csr파일명} -signkey {key파일명} -out {인증서 이름}.crt 

아래는  myharbor.io라는 host를 위한 SSL인증서를 만드는 예시입니다. 

두번째 CSR(Certificate Signing Request)파일을 만들때, 다른 값은 입력하지 않거나 아무 값이나 넣어도 되지만, Common Name은 반드시 hostname을 정확히 넣으셔야 합니다. 

[root@osboxes tmp]# openssl genrsa -out tls.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
..........................................................+++++
.....+++++
e is 65537 (0x010001)
[root@osboxes tmp]# openssl req -new -key tls.key -out tls.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:KR
State or Province Name (full name) []:Seoul
Locality Name (eg, city) [Default City]:Seoul
Organization Name (eg, company) [Default Company Ltd]:MyOrg
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:myharbor.io
Email Address []:hiondal@gmail.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@osboxes tmp]# openssl x509 -req -days 3650 -in tls.csr -signkey tls.key -out tls.crt
Signature ok
subject=C = KR, ST = Seoul, L = Seoul, O = MyOrg, CN = myharbor.io, emailAddress = hiondal@gmail.com
Getting Private key
[root@osboxes tmp]# ll
total 12
-rw-r--r--. 1 root root 1253 Nov 26 05:14 tls.crt
-rw-r--r--. 1 root root 1021 Nov 26 05:13 tls.csr
-rw-------. 1 root root 1679 Nov 26 05:13 tls.key

 

Mac에 인증서 설치 하기

SSL인증서를 이용하여 웹 서버를 구성한 후 웹브라우저에서 접근하면, 아래와 같이 경고 페이지가 나타납니다. 

Chrome이 아닌 브라우저에서는 [고급]버튼을 누르고, 아래 그림과 같이 해당 사이트로 이동할 수 있습니다. 

Window를 사용하는 경우에는 Chrome에서도 이동 링크가 제공 됩니다. 

 

문제는 Mac에서 Chrome브라우저를 사용하는 경우는 아래와 같이 링크가 제공되지 않는다는 것입니다. 

 

Mac에서 Chrome을 사용하는 경우는 테스트 인증서를 Mac에 설치해줘야 합니다. 

1) 인증서를 Mac에 다운로드

발급한 인증서를 Mac의 적당한 위치에 다운로드 하십시오. 

❯ mkdir -p ~/certs/harbor
❯ cd ~/certs/harbor
❯ scp root@192.168.56.2:~/work/harbor/tls.crt harbor.crt
root@192.168.56.2's password:

2) keychain Access(키체인 접근) 프로그램을 실행합니다.

Mac의 Spotlight Search를 이용하여 '키체인 접근' 프로그램을 실행합니다.  

3) 인증서 Import

좌측에서 '시스템'메뉴를 클릭합니다. 

'파일 > 항목 가져오기'를 선택합니다.  

다운로드한 인증서 파일을 선택합니다. 그리고 Mac의 암호를 입력합니다. 

 

4) 인증서 보안 설정 변경

가져오기한 인증서를 찾습니다. 

 

더블클릭하여, 인증서 상세화면을 엽니다. 

[신뢰] 섹션을 펼치고, 인증서를 '항상 신뢰'하는것으로 변경합니다. 

 

5) 확인

이제 chrome브라우저를 실행하고, 사이트를 접근하십시오.

[고급]버튼을 누르면 사이트로 이동할 수 있는 링크가 나옵니다.  

한번만 이 링크를 이용해서 사이트로 이동하면, 그 다음 부터는 보안 경고창 없이 바로 이동합니다. 

댓글

클라우드 네이티브 애플리케이션 부트캠프 알림