본문 바로가기

좋아하는 것_매직IT/36.Apache

Apache SSL(Secure Sockets Layer) 인증서 설정 깔끔하게 정리하기

반응형

아파치 웹 서버에서 SSL 설정은 웹 서버를 안전하게 운영하기 위해 중요한 부분입니다.

SSL 이란?

그런데 말입니다. SSL 은 무엇일까요?

우선, SSL에 대해서 간략하게 설명하자면 아래와 같은데요...

SSL (Secure Sockets Layer)은 인터넷에서 데이터를 안전하게 전송하기 위한 프로토콜입니다. 
SSL은 웹사이트와 사용자 간의 통신을 암호화하여 제3자로부터의 데이터 도청이나 조작을 방지합니다. 
이를 통해 사용자의 개인정보와 민감한 데이터를 보호할 수 있습니다.

SSL 작동방식

SSL의 작동 방식은 다음과 같습니다. 

먼저, 웹사이트는 SSL 인증서를 발급받아야 합니다. 
이 인증서는 웹사이트의 신원을 확인하고, 공개키와 개인키를 포함하고 있습니다. 
공개키는 데이터를 암호화하는데 사용되며, 개인키는 암호화된 데이터를 해독하는데 사용됩니다.

사용자가 SSL로 보호된 웹사이트에 접속하면, 웹브라우저는 웹사이트의 SSL 인증서를 확인합니다. 
이때, 인증서가 신뢰할 수 있는 인증기관(CA)에 의해 발급된 것인지 확인합니다. 
인증서가 신뢰할 수 있는지 확인되면, 웹브라우저와 웹사이트 간에 안전한 연결이 설정됩니다.

안전한 연결이 설정되면, 웹브라우저와 웹사이트 간의 모든 데이터는 암호화되어 전송됩니다. 
이는 제3자가 데이터를 도청하더라도 암호화된 형태로만 볼 수 있으므로, 데이터의 안전성이 보장됩니다. 
또한, SSL은 데이터의 무결성을 보장하기 위해 데이터가 조작되지 않았는지 확인하는 기능도 제공합니다.

SSL은 주로 온라인 상거래, 인터넷 뱅킹, 웹메일 등 개인정보를 주고받는 사이트에서 사용됩니다. 
SSL을 사용하면 사용자들은 웹사이트가 신뢰할 수 있는지 확인할 수 있으며, 개인정보를 안전하게 전송할 수 있습니다.

최근에는 SSL의 업그레이드 버전인 TLS (Transport Layer Security)가 주로 사용되고 있습니다. 
TLS는 SSL의 보안 결함을 보완하고, 더욱 강력한 암호화 알고리즘을 제공합니다.

SSL은 인터넷 사용자들의 개인정보 보호와 온라인 보안을 강화하는 중요한 기술입니다. 
웹사이트 운영자들은 SSL 인증서를 적용하여 사용자들의 안전한 웹사이트 이용을 보장해야 합니다.

아파치 웹서버 SSL 설정

그리고 아파치 웹 서버에서 SSL 설정을 하려면 다음 단계를 따를 수 있습니다

1.아파치 웹 서버가 설치되어 있어야 합니다.
 - 아파치 웹 서버가 설치되어 있지 않은 경우 먼저 설치해야 합니다.
아파치 웹 서버는 가장 널리 사용되는 웹 서버 소프트웨어 중 하나로, 웹사이트를 호스팅하고 관리하는 데 사용됩니다.

첫번째, 아파치 웹 서버를 설치하기 위해 운영체제에 맞는 아파치 패키지를 다운로드합니다.
아파치 웹 서버는 Apache Software Foundation의 공식 웹사이트에서 다운로드할 수 있습니다.

두번째, 다운로드가 완료되면, 다운로드한 아파치 패키지를 압축 해제합니다. 압축을 해제한 후, 압축이 해제된 디렉토리로 이동합니다.

세번째, 아파치 웹 서버를 설치하기 전에, 운영체제에 필요한 종속성을 확인하고 설치해야 합니다.
종속성은 아파치 웹 서버의 설치 가이드에서 확인할 수 있습니다.

네번째, 종속성을 설치한 후, 아파치 웹 서버를 설치하기 위해 명령 프롬프트 또는 터미널을 열고 아파치 웹 서버의 설치 디렉토리로 이동합니다.

다섯번째, 설치 디렉토리로 이동한 후, 아파치 웹 서버를 설치하기 위해 다음 명령을 실행합니다:

$ ./configure
$ make
$ make install

 

여섯번째, 설치가 완료되면, 아파치 웹 서버를 실행하기 위해 다음 명령을 실행합니다:

$ sudo systemctl start apache2

일곱번째, 아파치 웹 서버가 정상적으로 실행되었는지 확인하기 위해 웹 브라우저를 열고 `http://localhost` 또는 `http://서버의 IP 주소`를 입력합니다.
아파치 웹 서버의 기본 홈페이지가 표시되면 설치가 성공적으로 완료된 것입니다.

2.SSL 모듈을 활성화해야 합니다.
아파치 설정 파일 중 하나인 httpd.conf 또는 apache2.conf에서 다음과 같이 SSL 모듈을 활성화합니다.

LoadModule ssl_module modules/mod_ssl.so

그리고 ssl 관련 환경설정 파일은 Include 합니다.

Include conf/extra/httpd-ssl.conf



3.인증서를 생성하거나 구입해야 합니다.
대부분의 경우 SSL 인증서는 인증 기관(Certificate Authority)에서 구입하게 됩니다.
이 인증서 파일을 서버에 저장합니다.

root@magic:/server/apache/conf/ssl/20241019/star.magic.com># ll
합계 16
-rw-r--r-- 1 daemon daemon 1660  9월 18 13:10 chainCA.crt
-rw-r--r-- 1 daemon daemon 1280  9월 18 13:10 rootCA.crt
-rw-r--r-- 1 daemon daemon 2262  9월 18 13:10 star.magic.com.crt
-rw------- 1 daemon daemon 1708  9월  6 14:14 star.magic.com.key
root@magic:/server/apache/conf/ssl/20241019/star.magic.com>#

ssl 관련 환경설정 파일(httpd-ssl.conf) 는 아래와 같이 설정합니다.

아파치 설정 파일에서 다음과 같이 SSL 가상 호스트를 설정및 포트 그리고 기타 등등 설정을 합니다.
아래 예제는 기본 설정입니다.

Listen 443

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl

#######20221207 N4221 !3DES modify
#SSLCipherSuite      HIGH:!aNULL:!eNULL:!EXP:!RC4:!DES:!MD5:!LOW:!MEDIUM
#SSLProxyCipherSuite HIGH:!aNULL:!eNULL:!EXP:!RC4:!DES:!MD5:!LOW:!MEDIUM
SSLCipherSuite      HIGH:!aNULL:!eNULL:!EXP:!RC4:!DES:!MD5:!LOW:!MEDIUM:!3DES
SSLProxyCipherSuite HIGH:!aNULL:!eNULL:!EXP:!RC4:!DES:!MD5:!LOW:!MEDIUM:!3DES

SSLHonorCipherOrder on

SSLProtocol       -ALL +TLSv1 +TLSv1.1 +TLSv1.2
SSLProxyProtocol  -ALL +TLSv1 +TLSv1.1 +TLSv1.2

SSLPassPhraseDialog  builtin

SSLSessionCache        "shmcb:/magic/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

LogFormat "%a %t %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %>s %b %D" ssllog

<VirtualHost _default_:443>
ServerName      wealth.magic.com
ServerAlias     wealth-stage.magic.com
DocumentRoot    /magic/docs/magicroot

AddHandler caucho-request .jsp
AddHandler caucho-request .do
ResinConfigServer localhost 6800
CauchoStatus yes

    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
    RewriteRule . - [F]

    SSLEngine on
    SSLCertificateFile       /server/apache/conf/ssl/20241019/star.magic.com/star.magic.com.crt
    SSLCertificateKeyFile    /server/apache/conf/ssl/20241019/star.magic.com/star.magic.com.key
    SSLCertificateChainFile  /server/apache/conf/ssl/20241019/star.magic.com/chainCA.crt
    SSLCACertificateFile     /server/apache/conf/ssl/20241019/star.magic.com/rootCA.crt

ErrorLog  "|/magic/cronolog/sbin/cronolog /log/magic/ssl_error.%Y%m%d"
CustomLog "|/magic/cronolog/sbin/cronolog /log/magic/ssl_access.%Y%m%d" combined env=!imageuri
CustomLog "|/magic/cronolog/sbin/cronolog /log/magic/ssl_request.%Y%m%d" \
              "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" env=!imageuri
</VirtualHost>
728x90



아파치 웹 서버를 다시 시작하여 변경 사항을 적용합니다.

$ sudo systemctl restart apache2

 

결론


이제 아파치 웹 서버는 SSL을 사용하여 안전한 통신을 지원하게 되는데요...
이러한 단계는 기본적인 SSL 설정을 포함하고 있으며, 실제 환경에 따라 추가 구성이 필요할 수 있습니다.
필요한 설정을 추가하고, SSL 인증서를 정기적으로 갱신하는 것이 보안을 유지하는 데 중요합니다.

오늘의 블로그는 여기까지고요..
항상 믿고 봐주셔서 감사합니다. 

300x250