HTTPS 동작 방식
package
$ dnf install httpd
# https 방식 설정위한 패키지
$ dnf install mod_ssl
$ dnf install php
$ dnf install mod_wsgi
$ dnf install php-mysqlnd
인증서 생성
개인 키 생성
# 현재 위치에 localhost.key 이름으로 2048 길이의 키를 생성
$ openssl genrsa -out localhost.key 2048
$ ls
private.key
# ssl.conf 파일에 명시된 crt파일과 이름이 같도록 설정
$vi /etc/httpd/conf.d/ssl.conf
85 SSLCertificateFile /etc/pki/tls/certs/localhost.crt
CSR 생성
# CSR을 앞서 생성한 개인키, 생성될 CSR파일 지정하여 생성
$ openssl req -new -key localhost.key -out localhost.csr
# 요구하는 값 입력하여 자필 서명 인증서 생성
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]:sckwon
Organizational Unit Name (eg, section) []:Admin
Common Name (eg, your name or your server's hostname) []:webserver
Email Address []:root@localhost
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
# x.509표준을 따르는 인증서 생성
-req: CSR사용
-signkey: 앞서 생성한 개인키 지정
-out: 생성될 인증서 파일명
$ openssl x509 -req -signkey private/localhost.key -in localhost.csr -out cert.crt
Certificate request self-signature ok
subject=C = KR, ST = Seoul, L = Seoul, O = sckwon, OU = Admin, CN = webserver, emailAddress = root@localhost
firewall-cmd
# firewall https 서비스 추가
$ firewall-cmd --add-service=https
PHP
# 확인을 위해 간단한 코드(phpinfo page) 작성
$ vi /var/www/html/index.php
<?php
phpinfo();
?>
# 위치에 파일 생성 시 자동으로 context 적용
$ ls -lZ /var/www/html/index.php
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 21 Jun 10 01:27 /var/www/html/index.php
