내 우분투 서버에 SSL 무료 설치하기
- SSL 발급 사이트 : https://zerossl.com/ 다른 무료 사이트도 많이 있습니다만 여기서 다 나열할 필요는 없을 듯 합니다..
- 내가 쓰는 도메인 서비스 업체 : whois
SSL 설치 절차
- 무료 SSL의 제약사항은 별도로 알아보기로 하고
- 기본 개념은 먼저 인증기관으로 부터 해당 도메인의 소유주가 맞는지 확인을 받고 인증기관으로부터 SSL인증서와 key를 받아서 서버에 설치했음을 검증받으면 SSL발급을 완료했다고 할 수 있습니다..
- 이를 DV(Domain Validation) 이라고 하는데, 소규모 사이트나 개발서버에서 간략하게 무료로 발급받아 사용시에 사용합니다.
도메인 소유주임을 확인 받기
- ZeroSSL에 회원가입
- SSL Certificate Setup 에서 각 항목 채워줍니다.
- Domains
- Validity : 90-Day Certificate 로 해야 무료
- Add-Ons : 아무것도 선택하지 않아야 무료 가능
- CSR & Contact : Auto-Generate CSR 활성화
- Finalize Your Order: Free 선택

- Domain 소유주가 맞는지 확인하는 절차가 있는데 캡쳐를 못했습니다.. whois의 경우엔 [네임서버 고급설정] 가서 [CNAME 레코드 관리]에서 zeroSsl에서 제공한 호스트명과 CNAME 레코드를 등록해주면 도메인 인증을 할 수 있습니다.
인증서 받아서 서버에 설치했음을 확인 받기
Install Certificate

-
Download Certificate 에서 내 경우엔 Server Type을 Ubuntu로 하였습니다.. 이렇게 해도 결국엔 apache2를 가동하고 실제 인증서가 서버에 설치가 되었는지 인증기관인 zerossl에 확인이 되어야 합니다.
-
Install Certificate
- Zip 파일을 받아서 압축 풀고 tutorial 참고,
- Follow the steps listed on this page. (on this page에 링크 걸려있음)
- zip 파일에는 다음 3개의 파일이 들어있습니다.
- certificate.crt
- ca_bundle.crt
- private.key
- 3개 파일을 우분투로 복사 (FTP든 scp든 사용)
- 이제 apache를 띄워서 확인을 받아야 되는데 내 서버에 /etc/apache2/sites-enabled/your_site_name 이 경로가 없었고 a2ensite 명령어도 없었습니다.
- apache2가 제대로 설치가 안되어 있었기 때문입니다. apache2가 설치가 되어 있는지 확인하려면 아래 명령어를 쳐보면 됩니다.
apache2 -v- 필요하니 설치. 꼭 아파치로 도메인 소유 인증을 할 필요는 없지만, 어떤 서버로든 인증은 해야 합니다.
sudo apt update sudo apt install apache2 -y- /etc/apache2/sites-enabled 폴더에는 000-default.conf 파일이 있었는데 아래와 같이 생겼습니다.
<VirtualHost *:80> ServerAdmin admin@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html <Directory /var/www/example.com/public_html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> - Zip 파일을 받아서 압축 풀고 tutorial 참고,
- 튜토리얼대로 Apache에서 SSLEngine on을 사용하려 하면 “Invalid command ‘SSLEngine’” 오류가 발생할 수 있는데 그 이유는 apache에 SSL 모듈이 활성화되지 않았기 때문입니다.
-
SSL 모듈이 활성화되어 있는지 확인 먼저, Apache에서 SSL 모듈(mod_ssl)이 활성화되어 있는지 확인
apache2ctl -M | grep ssl -
SSL 모듈이 비활성화되어 있다면 아래 명령어를 실행하여 활성화 해야 SSL을 적용할 수 있습니다.
sudo a2enmod sslsudo systemctl restart apache2 -
기본 SSL 설정 파일 활성화
sudo a2ensite default-ssl -
여기까지 하고 Installation Complete 확인받으면 완료.
spring boot 에서 ssl 적용하려면..
-
그리고 내가 사용하려는 서버는 Spring Boot 로 개발하였기 때문에 boot 에서 https 를 사용하려면 기본적으로 .p12(PKCS12) 또는 .jks(Java Key Store)형식의 SSL 키 저장소를 사용하여야 합니다.
-
ZeroSsl 에서 다운로드 받은 .crt 와 .key 를 .p12로 변환하는 방법은 다음과 같습니다.
openssl pkcs12 -export -in certificate.crt -inkey private.key -out keystore.p12 -name mycert -
spring booot yml 설정에는 아래 예제처럼… keystore.p12 는 src/main/resources/ 아래에…
server:
port: 8443
ssl:
enabled: true
key-store: classpath:keystore.p12
key-store-password: "your-password"
key-store-type: PKCS12
key-alias: myalias
- 서버에 install certificate 까지 마쳤다면 해당 서버에 ssl 인증서 적용이 완료.