강좌
클라우드/리눅스에 관한 강좌입니다.
해킹&보안 분류

리눅스마스터1급 : 웹 서버 암호화

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: 웹 서버 암호화





1) 보안서버(SSL) 구축

 

인터넷상의 대부분의 정보는 TEXT기반으로 전송된다.

 

 

 

원격 접속을 위해 사용하는 telnet, 파일전송을 위해 사용하는 FTP, 메일을 주고받기 위해 사용하는 SMTP POP3 모두 TEXT기반으로 정보가 전송된다.

 

 

 

우리가 흔히 사용하는 웹의 프로토콜인 HTTP 또한 마찬가지다.

 

 

 

TEXT기반으로 전송되는 정보는 네트워크 장비 및 컴퓨터에서 스푸핑 하므로 정보를 쉽게 판독할 수 있다.

 

 

 

 

이러한 이유로 시스템 관리에 사용하는 telnet대신 암호화통신을 하는 ssh를 주로 사용한다.

 

 

 

파일 전송을 위해 사용하는 FTP 또한 SFTP를 많이 사용하고 FTP 클라이언트 프로그램에서도 호환을 가지게 되었다.

 

 

 

메일을 주고받기 위해 사용되는 SMTP POP3SMTPS POP3S로 변경되고 있다.

 

 

 

 

우리가 흔히 사용하는 웹은 그 활용도가 더욱더 많아져 생활의 일부인 쇼핑, 뱅킹, 경매, 증권, 기업간 전자상거래, 전자지불 등의 중요한 정보(신용카드번호, 신상정보 등 중요한 개인 정보)가 전달되는 일에서도 웹을 사용하고 있다.

 

 

 

앞에서 언급하였듯 웹은 TEXT기반으로 정보가 전송되기 때문에 정보 전송과정에서 제 3자에게 유출될 위험이 있다.

 

 

 

이 문제점을 SSL (Secure Sockets Layer) 기술을 통해 해결될 수 있다.

 

 

 

SSL 기술에 의해 암호화 처리가 된 문서는 정보를 보내는 사람(고객)과 정보를 받는 사람(서버) 외에는 해독할 수 없다.

 

 

 

따라서 전송되는 도중에 가로챈다고 해도 정보의 내용을 절대로 알 수 없으며 정보를 암호화하는 키와 복호화하는(암호를 푸는) 키도 각각 다르기 때문에 정보유출의 가능성은 그만큼 더 적어지게 되었다.

 

 

 

 

 

웹 서비스에서 사용하는 HTTP 프로토콜에 SSL을 적용한 HTTPS 프로토콜을 사용하게 된다.

 

 

 

HTTPS를 사용하여 안전한 웹서비스 환경을 구축 할 수 있다.

 

 

 

 

 

아파치 웹서버 2.0.x 부터는 HTTPS를 기본 지원하며, Apache 1.3.x 및 그 이전 버전은 별도의 모듈을 설치 해야 한다.

 

 

 

 

 

 

 

 

 

SSL 사용시 유의점

HTTPS는 이름기반 가상호스트를 지원하지 않는다.

 

 

 

이름기반 가상호스팅은 HTTP 헤더에 명시한 host를 기반으로 웹서버가 해석하여 작동한다.

 

 

 

하지만, HTTPS는 헤더가 암호화 되어 있기 때문에 해당 인증서로 해독을 한 후 가상호스트를 판단해야 한다.

 

 

 

하나의 아파치 웹서버에 여러 도메인이 설정된 경우 여러 서버키가 존재 하기 때문에 이름기반 가상호스트 설정은 불가능 하다.

 

 

 

그렇지만, IP기반, PORT기반 가상호스트 설정은 지원된다.

 

 

 

 

 

HTTPS를 사용한 페이지는 서버와 클라이언트에 많은 부하를 준다.

 

 

 

HTTPS는 서버와 클라이언트 사이에 전송되는 모든 바이트가 암호화되고 복호화 되기 때문에 서버와 클라이언트에 부하를 준다.

 

 

 

이러한 부하를 줄이기 위해 중요 정보가 전송되는 페이지에만 HTTPS를 사용하는 것이 효율적이다.

 

 

 

 

 

 

 

 

 

 

 

 

SSL 적용 시 Apache 동작 구조

 


 

 7ce9390993b6024bf1a77eac34869b85_1686878417_0758.png

 

위 그림은 웹서버에서 HTTPHTTPS 처리 구조를 나타낸 그림이다.

 

 

 

기본적으로 HTTPTCP 80포트를 사용한다.

 

 

 

HTTPSTCP 443을 기본적으로 사용한다.

 

 

 

SSL기능을 사용하게 되면, 웹서버는 2개의 포트를 열게 된다.

 

 

 

HTTPHTTPS는 다른 통로로 웹서버에 접속하지만, 내부적으로는 기존의 내용, PHP 프로그램을 동일하게 사용할 수 있다.

 

 

 

 

 

 

 

 

 

SSL이용 보안서버 구축시 요구사항

Apache에서 mod_ssl 지원

서버키 파일 ( .key)

인증서 파일 ( .crt)

 

 

 

 

 

 

키 쌍 생성

 

먼저 키를 보관할 위치를 정한다.

 

 

 

대부분은 다음 아파치 웹서버의 설정파일 디렉토리에 위치 시키며, conf 디렉토리는 일반 사용자가 접근하지 못하도록 700 권한을 가지는 것이 좋다.

 

 

 

 

 

키 보관 위치 : /usr/local/apache/conf

 

 

키 보관 위치로 이동하여 다음 명령어로 키쌍을 생성한다.

 

 

 

 

 

 

 

 

[root@SULinux-64Bit conf]# openssl genrsa -des3 -out sulinux.net.key 2048

Generating RSA private key, 2048 bit long modulus

...................................................................................................................................................................+++

....+++

e is 65537 (0x10001)

Enter pass phrase for sulinux.net.key:

Verifying - Enter pass phrase for sulinux.net.key:

 

 

 

 

 

서버키 알고리즘은 RSA를 사용하고, 2048bit 키를 생성한다.

 

 

 

 

여기서 입력하는 비밀번호 (pass phrase)는 꼭 기억해 두어야 한다.

 

 

 

웹서버 시작시 꼭! 필요 하고 잊어버리면 키쌍을 다시 생성해야 하며, 인증서를 재 발급 해야 한다.

 

 

 

 

 

CSR(Certificate Signing Request) 생성

 

 

키를 생성하였다면, 다음은 인증서에 사인을 요청하는 CSR을 생성해야 한다.

 

 

 

CSR을 생성하기 위해서는 여러 정보가 입력되어야 한다.

 

 

 

다음 정보가 필요하다.

 

 

 

 

 

국가 코드 : 대한민국이라면 KR입력

/도 이름 :

/군 이름 :

회사 이름 :

부서명 :

도메인 명 :

Email 주소 :

 

 

가장 중요한 것은 도메인 명이다.

 

 

 

입력한 도메인 주소에서만 사용할 수 있는 인증서가 된다.

 

 

 

예를 들어 sulinux.net www.sulinux.net은 인증서 생성시 다른 도메인이므로 www를 붙여 사용할 것인지 붙이지 않을 것인지 선택해야 한다.

 

 

 

 

 

다음 명령어로 CSR을 생한다.

 

 

 

입력하는 정보는 꼭 영어로 해야 한다.

 

 

 

 

 

 

 

 

 

[root@SULinux-64Bit conf]# openssl req -new -key sulinux.net.key -out sulinux.net.csr

Enter pass phrase for sulinux.net.key:

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) [GB]:KR

State or Province Name (full name) [Berkshire]:Seoul

Locality Name (eg, city) [Newbury]:Gangnam

Organization Name (eg, company) [My Company Ltd]:SUPERUSER Co., Ltd

Organizational Unit Name (eg, section) []:Korea Linux Laboratory

Common Name (eg, your name or your server's hostname) []:www.sulinux.net

Email Address []:sulinux@sulinux.net

 

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

 

 

 

 

 

 

 

extra 부분은 입력하지 않아도 무관하다.

 

 

 

 

 

생성된 CSR은 다음과 같은 내용을 가진다.

 

 

 

 

 

 

 

 

 

[root@SULinux-64Bit conf]# cat sulinux.net.csr

-----BEGIN CERTIFICATE REQUEST-----

MIIC8DCCAdgCAQAwgaoxCzAJBgNVBAYTAktSMQ4wDAYDVQQIEwVTZW91bDEPMA0G

A1UEBxMGR2FubmFtMRswGQYDVQQKExJTVVBFUlVTRVIgQ28uLCBMdGQxHzAdBgNV

BAsTFktvcmVhIExpbnV4IExhYm90YXRvcnkxGDAWBgNVBAMTD3d3dy5zdWxpbnV4

Lm5ldDEiMCAGCSqGSIb3DQEJARYTc3VsaW51eEBzdWxpbnV4Lm5ldDCCASIwDQYJ

KoZIhvcNAQEBBQADggEPADCCAQoCggEBALSAm+xQsGOunsEIe2jOiYZpXADVMPi7

5EAqnLvNXitntaQxS5onwsihj80Z7zFypYdmC8vPyJpq2EiUaTzkHSke+7c14XDb

=== 중간생략 ===

J91o7r149/CC5zm8UdApRB6DzXvyfvk607vINehrQ+h7Djcw8//1+Hp4Z8y8YlKy

+NcAiM5A06PPXitYIM511vUs8uPQ5BpERFCmNEHoHQhFbbL3mKK4NvSIeK2C21eq

MEVoWeaqJeFZXeUclHNeHWcRSvT/grFQl/LyUVVu8sJwA3NmMkdyd6YTxBerDYlb

cSVHPa1TUjHDr6pFRUqdMZlWpvza0ZaibXU870+T0dHSQiIO

-----END CERTIFICATE REQUEST-----

 

 

 

 

 

 

 

생성된 CSR은 인증서 발급 기관에 신청 후 인증서를 수령한다.

 

 

 

인증서 발급 기관은 아주 많은 곳이 있으며, 보상 수준에 따라 가격차이가 많이난다.

 

 

 

인증서 발급 업체에서 인증서 파일인 CRT파일을 받는다.

 

 

 

발급 받은 CRT파일은 키 보관 경로(conf)"sulinux.net.crt" 파일 형태로 저장한다.

 

 

 

 

 

아파치 SSL 설정

 

(key) 파일과, 인증서(crt) 파일이 준비되었다면, 웹서버인 아피치 서버에 설정을 한다.

 

 

 

먼저 아파치 설정파일(httpd.conf)을 확인한다.

 

 

 

 

 

 

 

 

#Include conf/extra/httpd-ssl.conf

 

 

 

 

 

 

 

위와 같이 설정되어 있다면, 주석을 의미하는 “#”을 제거한다.

 

 

 

 

 

다음으로 SSL 설정파일을 편집한다.

 

 

 

SSL 설정파일은 Apache 버전에 따라 다른 위치를 가진다.

 

 

 

Apache 2.0.Xconf/ssl.conf, Apache 2.2.Xconf/extra/httpd-ssl. conf에 위치한다.

 

 

 

 

 

SSL 설정도 가상 호스트 형태로 되어 있으며, 다음 사항을 수정 한다.

 

 

 

 

 

 

 

 

 

DocumentRoot "/usr/local/apache/htdocs"

ServerName www.example.com:443

ServerAdmin you@example.com

ErrorLog "/usr/local/apache/logs/error_log"

TransferLog "/usr/local/apache/logs/access_log"

SSLCertificateFile "/usr/local/apache/conf/server.crt"

SSLCertificateKeyFile "/usr/local/apache/conf/server.key"

 

 

 

 

 

 

 

위 설정 부분을 도메인 및 가상WebRoot, key파일, 인증서 파일의 경로를 설정 한다.

 

 

 

 

 

다음은 www.sulinux.net을 설정한 예제이다.

 

 

 

 

 

 

 

 

 

DocumentRoot "/home/sulinux/www"

ServerName www.sulinux.net

ServerAdmin sulinux@sulinux.net

ErrorLog "/usr/local/apache/logs/error_log"

TransferLog "/usr/local/apache/logs/access_log"

SSLCertificateFile "/usr/local/apache/conf/sulinux.net.crt"

SSLCertificateKeyFile "/usr/local/apache/conf/sulinux.net.key"

 

 

 

 

 

 

 

설정파일 수정 후 웹서버를 정지 후 시작한다.

 

 

 

(SSL 적용시 꼭 stop start 해야 한다.)

 

 

SSL을 적용하고 아파치 웹서버를 시작하는 방법은 아파치 버전에 따라 다르다.

 

 

 

Apache 2.0.Xapachectl startssl 으로 Apache 2.2.X는 기존 시작 방법과 동일하게 사용한다.

 

 

 

 

 

다음은 인증서 설정후 시작한 내용이다.

 

 

 

 

 

 

 

 

 

[root@SULinux-64Bit conf]# /usr/local/apache/bin/apachectl start

Apache/2.2.24 mod_ssl/2.2.24 (Pass Phrase Dialog)

Some of your private key files are encrypted for security reasons.

In order to read them you have to provide the pass phrases.

 

Server www.sulinux.net:443 (RSA)

Enter pass phrase:

 

OK: Pass Phrase Dialog successful.

 

 

 

 

 

 

 

SSL을 적용하면, 웹서버 시작 시 SSL 비밀번호(pass phrase)를 물어 보게 된다.

 

 

 

비밀번호를 입력하여야 정상적으로 웹서버가 시작된다.

 

 

 

 

 

* 비밀번호를 알지 못하면 웹서버 시작이 되지 않으니 주의해야 한다.

 

 

 

 

 

 

 

 

 

웹서버 시작시 비밀번호(Pass Phrase) 자동 입력

 

SSL을 사용하여 보안서버를 구축하고 나면 서버관리자에게는 고민이 하나 더 생기게 된다.

 

 

 

아파치 웹서버를 시작 시마다 비밀번호를 넣어 줘야 하니 서버 부팅 시 매번 비밀번호를 입력해 주어야 하고 비밀번호를 잊어버리게 되면, 웹서버를 시작 시킬 수 없는 상황이 발생된다.

 

 

 

, 비밀번호를 잊어버리고 5번 실패하면, 인증서를 다시 받아야 하는 불상사가 발생한다.

 

 

 

 

 

이 비밀번호를 기록해 두고 자동으로 입력 할 수 있는 방법이 있다.

 

 

 

물론 보안을 생각하면 좋은 방법이 아니다.

 

 

 

 

 

1) 먼저 conf/passphrase 파일을 만들어 다음 내용을 넣는다.

#!/bin/bash

echo "PassPhrase"

 

위에서 "PassPhrase" 부분에 비밀번호(Pass Phrase)를 넣어 준다.

 

 

 

 

 

2) 실행 권한을 부여 한다.

 

 

 

(보안을 위해 root 만 실행하고 볼 수 있게 설정)

chmod 700 conf/passphrase

 

3) conf/ssl.conf 파일 수정

SSLPassPhraseDialog builtin

==> 이 부분을 다음과 같이 수정 ==>

SSLPassPhraseDialog exec:conf/passphrase

 

4) 이렇게 하고 아파치 정지 후, 시작하면 비밀번호(pass phrase)를 물어보지 않는다.

 

 

 

[root@SULinux-64Bit conf]# /usr/local/apache/bin/apachectl start

 

위 설정을 적용하고 SSL적용된 서버를 시작한 결과이다.

 

 

 

별도의 비밀번호를 물어보는 절차가 없는 것을 확인할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

인증서, 키파일을 확인하고 싶다.

 

 

 

 

보안서버를 구축하기 위해 키를 생성하고, CSR을 만들고, CRT를 발급 받았다.

 

 

 

파일을 열어보면 무언가 알아 볼 수 없는 내용만 나온다.

 

 

 

이는 키 및 인증서가 BASE64(출력할 수 있는 64개의 문자)로 인코딩 되어 있기 때문이다.

 

 

 

어떤 키 파일이며, 어떤 내용이 있는지 궁금하다면 다음 명령어를 통해 확인 해 볼 수 있다.

 

 

 

 

 

1) key 내용 확인다음 내용은 키 파일을 cat 명령어로 확인하였다.

 

 

 

 

 

[root@sulinux2 conf]# cat sulinux.net.key

-----BEGIN RSA PRIVATE KEY-----

Proc-Type: 4,ENCRYPTED

DEK-Info: DES-EDE3-CBC,EB3CF275E6B5EB79

 

Tu2yNLGN/ki9xZLEhjZ906F5ixWSzsqoPP0oySv+Dvd9EGcRHKbr+gLX1wzAmFXF

==== 중간 내용 생략 ====

pciDIO9V+X9d72xFOmphyXa1NLb/FzcwSFIGQQgkSfSgVgGHc5P1Lg==

-----END RSA PRIVATE KEY-----

 

다음은 openssl명령어를 이용하여 key 파일 내용을 확인 한 결과이다.

 

 

 

 

 

[root@sulinux2 conf]# openssl rsa -noout -text -in sulinux.net.key

Enter pass phrase for sulinux.net.key:

Private-Key: (2048 bit)

modulus:

00:ab:95:3d:e7:dc:09:65:9b:e9:3f:b0:98:8e:ef:

==== 중간 내용 생략 ====

e1:3f:91:49:ac:0c:03:26:6b

publicExponent: 65537 (0x10001)

privateExponent:

38:27:37:83:51:f7:a1:51:4d:1c:92:e6:da:a0:7f:

==== 중간 내용 생략 ====

24:2b:39:ea:13:da:fe:41

prime1:

00:d9:db:72:b8:73:f9:c5:72:35:9b:93:97:6b:c9:

==== 중간 내용 생략 ====

18:06:1e:08:0d

prime2:

00:c9:9f:bd:d0:e4:74:d3:ed:2d:bd:fd:ff:31:39:

==== 중간 내용 생략 ====

77:67:53:92:57

exponent1:

41:49:7a:7f:bc:81:c5:a2:0c:5e:ab:44:5d:90:fa:

==== 중간 내용 생략 ====

f7:58:58:a1

exponent2:

00:9d:ed:b7:fa:d5:d8:04:e0:35:02:2a:e0:27:28:

==== 중간 내용 생략 ====

2c:97:0c:c9:05

coefficient:

05:05:a2:fb:fe:28:4d:6c:85:11:fc:c5:74:a1:8a:

==== 중간 내용 생략 ====

ae:83:b9:f6:ef:3f:45:30:9d:cc:ca:f8:9c:d0:58:

a1:b5:f6:5a

 

위 내용은 앞에서 생성한 sulinux.net.key 파일을 확인 했다.

 

 

 

여러 가지 항목으로 구분되어 있는 것을 확인 할 수 있다.

 

 

 

 

 

2) crt(인증서)파일 확인다음은 인증서 내용을 cat 명령어로 확인한 결과이다.

 

 

 

 

 

[root@sulinux2 conf]# cat sulinux.net.crt

-----BEGIN CERTIFICATE-----

FDCgN/h4hmY2c8Q3F4dgLQFZEJ+BysOiuEaJ7rxM2cbW8cbS+BCtp+Zq6JVA4abH

KhHfzUt5Bw4Mky2/PbdtpOzNCUduXDckrOHFAme12HVIIrg3M2Qh1Gl3ucK3838e

==== 중간 생략 ====

YawSiWQvCz2xD87ACSwz/67L2O4vhihCITSRninrvaQmYkK0Acvsk/nHFNJwf3f7

wVkbW7/lpD9Yh+Ox0ok2iuuu8+f3

-----END CERTIFICATE-----

 

 

 

다음은 openssl 명령어를 사용하여 인증서 내용을 확인한 결과이다.

 

 

 

 

 

[root@sulinux2 conf]# openssl x509 -noout -text -in sulinux.net.crt

Certificate:

Data:

Version: 3 (0x2)

Serial Number:

0a:e0:96:ef:1c:00:85:d0:8b:30:54:17:f1:40:a3:07

Signature Algorithm: sha1WithRSAEncryption

Issuer: C=US, ST=UT, L=Salt Lake City, O=The USERTRUST Network, OU=http://www.usertrust.com, CN=UTN-USERFirst-Hardware

Validity

Not Before: Oct 27 00:00:00 2008 GMT

Not After : Oct 27 23:59:59 2011 GMT

Subject: C=KR/2.5.4.17=609-340, ST=Seoul, L=Namsan-Dong/2.5.4.9=5F Daewon B/D 117-3, O=SULinux inc, OU=Server Team, OU=Hosted by Hanbiro Co., Inc., OU=Comodo InstantSSL, CN=www.sulinux.net

Subject Public Key Info:

Public Key Algorithm: rsaEncryption

RSA Public Key: (2048 bit)

Modulus (2048 bit):

00:d0:3c:d7:61:69:42:c1:0a:c8:d9:84:9c:8a:59:

==== 중간 생략 ====

91:54:c6:9d:bd:04:df:82:b7

Exponent: 65537 (0x10001)

X509v3 extensions:

X509v3 Authority Key Identifier:

keyid:A1:72:5F:26:1B:28:98:43:95:5D:07:37:D5:85:96:9D:4B:D2:C3:45

 

X509v3 Subject Key Identifier:

E8:C9:CD:07:ED:B2:10:A9:68:51:79:8C:37:4D:47:BD:B6:B3:50:46

 

X509v3 Key Usage: critical

Digital Signature, Key Encipherment

X509v3 Basic Constraints: critical

CA:FALSE

X509v3 Extended Key Usage:

TLS Web Server Authentication, TLS Web Client Authentication

 

Netscape Cert Type:

SSL Client, SSL Server

X509v3 Certificate Policies:

Policy: 1.3.6.1.4.1.6449.1.2.1.3.4

CPS: https://secure.comodo.net/CPS

 

X509v3 CRL Distribution Points:

URI:http://crl.comodoca.com/UTN-USERFirst-Hardware.crl

URI:http://crl.comodo.net/UTN-USERFirst-Hardware.crl

 

Authority Information Access:

CA Issuers - URI:http://crt.comodoca.com/UTNAddTrustServerCA.crt

OCSP - URI:http://ocsp.comodoca.com

 

X509v3 Subject Alternative Name:

DNS:www.sulinux.net, DNS:sulinux.net

Signature Algorithm: sha1WithRSAEncryption

1b:b2:2e:f3:46:7d:28:d0:94:61:02:85:d5:a0:04:60:69:58:

==== 중간 생략 ====

ae:f3:e7:f7

 

 

 

위 파일은 실제로 사용하고 있는 sulinux.net 사이트의 인증서이다.

 

 

 

위 내용을 보면, 암호화 방식 및 상위 인증기관, 유효기간, 서명 알고리즘 등 다양한 정보를 확인할 수 있다.

 

 

 

물론 “CN=www.sulinux.net” 이 부분이 가장 중요하며, 이 인증서는 www.sulinux.net의 인증서인 것을 확인할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

꼭 상위 기관에서 인증해줘야 인증서가 생성 되나? 직접 인증 할 수 없을까?

 

인증서는 인증서 발급기관에서 사인해 주어야 유효한 인증서가 된다.

 

 

 

또 인증 기간이 유효해야한다.

 

 

 

하지만, 테스트를 위해 self sign certificate를 생성할 수 있다.

 

 

 

이는 자기 자신이 인증서에 서명하는 방식이다.

 

 

 

이 인증서를 적용하면 웹 브라우져에서 경고창이 뜨게 되지만, SSL을 사용한 통신은 가능하다.

 

 

 

 

 

1) Self Sign 인증서 생성다음 명령어로 자기 자신이 사인한 인증서를 만들 수 있다.

 

 

 

사인을 할 때는 꼭 개인키가 필요하다.

 

 

 

openssl명령어로 새로운 인증서를 생성한다.

 

 

 

유효 기간은 지금부터 1(365)으로 하며, 인증서 알고리즘은 X509, 다이제스트 알고리즘은 SHA1을 사용하여 생성한다.

 

 

 

 

[root@sulinux2 conf]# openssl req -new -x509 -nodes -sha1 -days 365 \

-key sulinux.net.key -out sulinux.net.crt

Enter pass phrase for sulinux.net.key:

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) [GB]:KR

State or Province Name (full name) [Berkshire]:Seoul

Locality Name (eg, city) [Newbury]:Gangnam

Organization Name (eg, company) [My Company Ltd]:SUPERUSER co,. LTD

Organizational Unit Name (eg, section) []:Korea Linux Laboratory

Common Name (eg, your name or your server's hostname) []:www.linux.co.kr

Email Address []:linux@linux.co.kr

 

Self Sign 인증서를 만들기 위해서 위와 같이 진행한다.

 

 

 

먼저 개인키의 비밀번호를 입력하고, CSR생성시와 비슷한 정보들을 입력한다.

 

 

 

인증서는 여러 정보를 가지고 있기 때문에 위와 같은 입력 절차가 필요하다.

 

 

 

여기서도 Common Name 부분이 가장 중요하다.

 

 

 

사용하고자 하는 도메인이 된다.

 

 

 

 

 

다음은 openssl명령어를 이용하여 생성한 인증서 내용을 확인한 결과이다.

 

 

 

 

 

[root@sulinux2 conf]# openssl x509 -noout -text -in sulinux.net.crt

Certificate:

Data:

Version: 3 (0x2)

Serial Number:

fd:62:36:9d:92:34:b7:cb

Signature Algorithm: sha1WithRSAEncryption

Issuer: C=KR, ST=Seoul, L=Gangnamgu, O=SUPERUSER co,. LTD, OU=Korea Linux Laboratory, CN=www.linux.co.kr/emailAddress=linux@linux.co.kr

Validity

Not Before: Apr 22 17:57:48 2009 GMT

Not After : Apr 22 17:57:48 2010 GMT

Subject: C=KR, ST=Seoul, L=Gangnamgu, O=SUPERUSER co,. LTD, OU=Korea Linux Laboratory, CN=www.linux.co.kr/emailAddress=linux@linux.co.kr

Subject Public Key Info:

Public Key Algorithm: rsaEncryption

RSA Public Key: (2048 bit)

Modulus (2048 bit):

00:ab:95:3d:e7:dc:09:65:9b:e9:3f:b0:98:8e:ef:

==== 중간 생략 ====

e1:3f:91:49:ac:0c:03:26:6b

Exponent: 65537 (0x10001)

X509v3 extensions:

X509v3 Subject Key Identifier:

BA:16:1A:E2:78:4E:DF:63:E7:74:84:60:C5:A8:56:2F:41:3A:03:CF

X509v3 Authority Key Identifier:

keyid:BA:16:1A:E2:78:4E:DF:63:E7:74:84:60:C5:A8:56:2F:41:3A:03:CF

DirName:/C=KR/ST=Seoul/L=Gangnamgu/O=SUPERUSER co,. LTD/OU=Korea Linux Laboratory/CN=www.linux.co.kr/emailAddress=linux@linux.co.kr

serial:FD:62:36:9D:92:34:B7:CB

 

X509v3 Basic Constraints:

CA:TRUE

Signature Algorithm: sha1WithRSAEncryption

==== 중간 생략 ====

38:1d

 

위 내용을 보면 앞에서 입력한 정보로 인증서가 생성되었고, 인증서를 사인해주는 기관과 사용기관이 동일한 것을 확인할 수 있다.

 

 

 

기간은 1년으로 설정되었다.

 

 

 

 

이렇게 Self Sign한 인증서를 서버에 복사하여 사용할 수 있다.

 

 

 

 

 

 

 

 

 

보안서버 적용 확인

 

 

7ce9390993b6024bf1a77eac34869b85_1686878457_4165.png
 

 

위 그림은 SSL인증서가 적용된 사이트이다.

 

 

 

웹브라우저의 주소창에 https://”로 시작하고, 그 앞에 열쇠표시가 있는 것을 확인 할 수 있다.

 

 

 

 

 

7ce9390993b6024bf1a77eac34869b85_1686878473_4931.png
 

 

 

위 그림과 같이 유효한 인증서를 통해 연결된 것을 확인 할 수 있다.

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  80 명