RadarURL
Skip to content
조회 수 136 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

아파치(Apache) SSL 인증서 설치

www.ssls.com에서 SSL인증서 구입해서 CentOS에서 설치해보자.

https://www.ssls.com/ssl-certificates/comodo-positivessl

Comodo PositiveSSL 인증서 가격은 3년에 $14.97로 1년에 $4.99이며 sub 도메인은 지원하지 않는다.

인증서 구매

인증서 구매를 위해 ssls.com에 접속한 뒤 우측의 카드 아이콘이 있는 버튼을 클릭해서 장바구니에 담는다.

 

CentOS SSL 인증서 생성  010.png

 

CHECKOUT버튼을 클릭해서 카드 또는 paypal로 구매를 진행한다.

 

CentOS SSL 인증서 생성  011.png

 

구매를 진행하면 인증서 발급을 위해 CSR을 넣는 화면이 보인다.

 

CentOS SSL 인증서 생성  001.png

 

CSR파일 생성

CSR파일은openssl 명령어를 이용해서 CSR 파일을 생성한다.

아래 명령어에서 site-domain는 naver.com과 같은 도메인 이름을 입력해야한다.

Country, State 등 키 생성에 사용될 정보를 입력하고 challenge password와 optional company name은 엔터키를 눌러 빈 값으로 입력한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# openssl req -new -newkey rsa:2048 -nodes -keyout site-domain.key -out site-domain.csr
Generating a 2048 bit RSA private key
............................................+++
..............................................................................................................................................................................
Country Name (2 letter code) [XX]:KR
State or Province Name (full name) []:Gyeonggi-do
Locality Name (eg, city) [Default City]:Ansan-si
Organization Name (eg, company) [Default Company Ltd]:Bonmade Ltd
Organizational Unit Name (eg, section) []:dev team
Common Name (eg, your name or your server's hostname) []:site-domain
Email Address []:appmania78@gmail.com
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

정보를 모두 입력하면 csr파일과 key파일이 생성된다.

1
2
3
4
5
#ls -l
합계 44
-rw-------. 1 root root 1305  8월 10  2015 anaconda-ks.cfg
-rw-r--r--  1 root root 1078  8월 17 15:45 site-domain.csr
-rw-r--r--  1 root root 1704  8월 17 15:45 site-domain.key

csr파일은 ssls.com에 등록하고 key파일은 아파치 서버에 업로드해야 되므로 잘 보관한다.

csr파일의 내용을 복사해서 ssls.com에 입력한다. ------BEGIN 부터 ------END라인까지 모두 붙여 넣는다.

CentOS SSL 인증서 생성  002.png

 

인증서에는 www가 붙는 도메인과 안붙는 도메인을 모두 지원한다.

CentOS SSL 인증서 생성  004.png

 

서버가 톰캣인지 아닌지 선택한다.

아파치에 설치 예정이므로 아래 항목을 선택한다.

CentOS SSL 인증서 생성  003.png

 

도메인을 소유 확인 방법을 파일업로드로 이메일방법 중에서 파일업로드를 선택한다.

CentOS SSL 인증서 생성  005.png

 

다음은 도메인을 소유하고 있다는 것을 증명하기 위해서 파일을 업로드해야한다.

먼저 우측상단의 SAVE ACTIVATION FILE을 클릭해서 text파일을 다운로드 받고 다운받을 파일을 소유하고 있는 도메인의 파일 서버에 .well-known/pki-validation 폴더를 만들고 업로드한다.

CentOS SSL 인증서 생성  006.png

 

site-domain/.well-known/pki-validation/다운받은 text파일명을 입력하면 text 파일 내용이 보이는지 확인한다.

CentOS SSL 인증서 생성  007.png

 

이제 좀 기다리면 메일로 SSL 인증 파일이 메일로 전송된다.

CentOS SSL 인증서 생성  008.png

 

메일로 전송된 압축파일을 보면 인증 파일에 필요한 ca-bundle과 crt파일이 포함되어있다.

CentOS SSL 인증서 생성  009.png

 

httpd.conf 파일 수정

httpd.conf 파일을 수정해서 인증서를 등록한다.

443 포트를 추가하고 메일로 받은 두 개의 파일과 csr 생성할 때 만들어진 site-domain.key 파일을 업로드한 경로를 아래와 같이 추가한다.

1
#vi /etc/httpd/conf/httpd.conf
1
2
3
4
5
6
7
8
<VirtualHost *:443>
   DocumentRoot /var/www/html/webfile
   ServerName www.site-domain
   SSLEngine on
   SSLCertificateFile /etc/httpd/conf/ssl/quote-plus_com.crt
   SSLCertificateKeyFile /etc/httpd/conf/ssl/quote-plus.com.key
   SSLCertificateChainFile /etc/httpd/conf/ssl/quote-plus_com.ca-bundle
</VirtualHost>

443 Port Listen 확인

https는 443 포트를 사용하므로 443 Port를 httpd가 Listen하고 있는지 netstat 명령어로 확인해야한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1444/master        
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1466/mysqld        
tcp        0      0 0.0.0.0:1202            0.0.0.0:*               LISTEN      20783/sshd         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      12315/dnsmasq      
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      31941/cupsd        
tcp6       0      0 ::1:25                  :::*                    LISTEN      1444/master        
tcp6       0      0 :::80                   :::*                    LISTEN      8184/httpd         
tcp6       0      0 :::1202                 :::*                    LISTEN      20783/sshd         
tcp6       0      0 :::21                   :::*                    LISTEN      11236/vsftpd       
tcp6       0      0 ::1:631                 :::*                    LISTEN      31941/cupsd    

443포트를 Listen하고 있지 않다면 openssl과 mod_ssl을 설치 되어 있는지 확인한다.

 

1
2
# yum list installed openssl
# yum list installed mod_ssl

설치되어 있지 않는 모듈을 설치하고 아파치를 재시직한다.

 

1
2
3
#yum -y install openssl
#yum -y install mod_ssl
#service httpd restart

다시 netstat 명령어로 확인하면 443포트를 Listern하고 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1444/master        
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1466/mysqld        
tcp        0      0 0.0.0.0:1202            0.0.0.0:*               LISTEN      20783/sshd         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      12315/dnsmasq      
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      31941/cupsd        
tcp6       0      0 ::1:25                  :::*                    LISTEN      1444/master        
tcp6       0      0 :::443                  :::*                    LISTEN      8654/httpd         
tcp6       0      0 :::80                   :::*                    LISTEN      8654/httpd         
tcp6       0      0 :::1202                 :::*                    LISTEN      20783/sshd         
tcp6       0      0 :::21                   :::*                    LISTEN      11236/vsftpd       
tcp6       0      0 ::1:631                 :::*                    LISTEN      31941/cupsd        
[root@localhost ~]#

httpd 재시작 오류 해결

httpd.conf 파일 수정하고 서비스를 재시작하는 단계에서 아래와 같은 오류가 발생 했다면 systemctl status httpd.service 명령어로 원인을 확인 할 수 있다.

주로 인증서 파일의 경로가 잘못 됐을 때 발생한다.

1
2
3
# service httpd restart
Redirecting to /bin/systemctl restart  httpd.service
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 목 2017-08-17 18:34:30 KST; 5s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 9766 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
  Process: 9764 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 9764 (code=exited, status=1/FAILURE)
 
 8월 17 18:34:30 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
 8월 17 18:34:30 localhost.localdomain httpd[9764]: AH00526: Syntax error on line 202 of /etc/httpd/conf/httpd.conf:
 8월 17 18:34:30 localhost.localdomain httpd[9764]: SSLCertificateKeyFile: file '/etc/ssl/crt/site-domain.key' does not exist or is empty
 8월 17 18:34:30 localhost.localdomain systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
 8월 17 18:34:30 localhost.localdomain kill[9766]: kill: cannot find process ""
 8월 17 18:34:30 localhost.localdomain systemd[1]: httpd.service: control process exited, code=exited status=1
 8월 17 18:34:30 localhost.localdomain systemd[1]: Failed to start The Apache HTTP Server.
 8월 17 18:34:30 localhost.localdomain systemd[1]: Unit httpd.service entered failed state.
 8월 17 18:34:30 localhost.localdomain systemd[1]: httpd.service failed.

https 테스트 및 인증서 확인

서비스를 다시 시작하고 브라우저에서 https로 접속하면 인증된 사이트로 표시된다.

1
# service httpd restart

CentOS SSL 인증서 생성  012.png

 

이제 설치된 인증서를 확인하자.
크롬에서 F12를 클릭해서 개발자도구를 열고 Security 탭의 View certificate 버튼을 클릭하면 인증서를 확인 할 수있다.

CentOS SSL 인증서 생성  013.png

 

인증서에서 유효기간을 확인하고 만료전에 갱신하자

CentOS SSL 인증서 생성  014.png

 

http 리다이렉트

http를 https로 리다이렉트하려면 .htaccess 파일을 만들고 아래 코드를 추가한다.
httpd.conf에 추가하면 된다는 정보도 있으나 잘 동작하지 않아서 .htaccess에 추가했다.

1
2
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

참고 URL

http://egloos.zum.com/guswl47/v/6514311

https://www.instantssl.com/ssl-certificate-support/cert_installation/ssl-certificate-mod_ssl.html

https://wiki.kldp.org/HOWTO/html/SSL-RedHat-HOWTO/ssl-redhat-howto-4.html

 

출처 : http://blog.devez.net/402

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
» [Linux] 아파치(Apache) SSL 인증서 설치 JAESOO 2021.01.12 136
100 리눅스 CentOS 7 HTTPS 리다이렉트 설정 JAESOO 2021.01.12 155
99 [Apache] SSL 적용하기 / HTTP->HTTPS로 Rewrite하기 JAESOO 2021.01.12 82
98 centos 7.x에서 ssl 설치하기 JAESOO 2021.01.12 84
97 CentOS7 Apache ssl 인증서 적용 그리고 80 to 443 redirect JAESOO 2021.01.12 78
96 무료 SSL 보안 인증서 발급받기 (Free SSL Certificate) JAESOO 2021.01.12 103
95 [리눅스][XE]XpressEngine(제로보드) 사용 시, 500 Internal Server Error when using .htaccess with RewriteEngine JAESOO 2021.01.02 50
94 CentOS 7 yum으로 phpMyAdmin 설치 & 권한(permission) 문제 해결 JAESOO 2021.01.02 44
93 [리눅스/CentOS 7] PHP7.2 설치(Webtatic) JAESOO 2021.01.02 40
92 CentOS 7 PHP / PHP-FPM 7.4 설치 (remi repo) JAESOO 2021.01.02 42
91 Apache 403 Forbidden error 해결 방법 JAESOO 2021.01.02 30
90 아파치 Forbidden You don’t have permission to access / on this server. 에러 해결 JAESOO 2021.01.02 37
89 [리눅스] 웹서버(아파치;apache) 설치후 다른 계정으로 실행하기 JAESOO 2021.01.02 23
88 [CentOS] 아파치(apache) 제거하기 JAESOO 2021.01.02 28
87 [Linux] Apache 웹서버 정리 JAESOO 2021.01.02 34
86 CentOS 7 - Apache 아파치 실행 상태 확인 JAESOO 2021.01.02 36
85 아파치 2.4에서 httpd.conf 데몬 실행 오류 찾아내는 방법 JAESOO 2021.01.02 26
84 service httpd.service 오류 발생 시 해결방법 JAESOO 2021.01.02 29
83 [Apache & TOMCAT 연동 2] 일반계정으로 아파치 관리 JAESOO 2021.01.02 109
82 CentOS 7 / Apache / 하나의 서버에 여러 사이트 운영하기 JAESOO 2021.01.02 26
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6

PageViews   Today : 3,154   Yesterday : 4,183   Total : 22,770,749  /  Counter Status   Today : 464   Yesterday : 520   Total : 1,893,164
Site Info   Member : 253  /  Total documents : 1,303   New documents : 0  /  Total comments : 26

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소