Ubuntu
Apache 2.4.58
1. Open SSL 설치 및 확인
root@Ubuntu:/var/www/html/nk# apt install openssl
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다... 완료
상태 정보를 읽는 중입니다... 완료
패키지 openssl는 이미 최신 버전입니다 (3.0.13-0ubuntu3.4).
openssl 패키지는 수동설치로 지정합니다.
0개 업그레이드, 0개 새로 설치, 0개 제거 및 18개 업그레이드 안 함.
root@Ubuntu:/var/www/html/nk# openssl version
OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)
2. 개인 키 및 CSR 생성
openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out request.csr
# -newkey rsa:2048: 새로운 RSA 개인 키를 생성 및 키 길이를 2048비트로 설정. 기본적인 보안 키 길이. rsa:<bit_size>로 다른 크기의 키를 생성가능. (EX: rsa:4096).
# -new: 새로운 CSR을 생성
# -nodes: 개인 키에 암호화를 적용하지 않는다. 기본적으로, OpenSSL은 개인 키를 생성할 때 비밀번호를 요구하는데, -nodes 옵션을 사용하면 비밀번호 없이 키를 생성
# -keyout private.key: 생성된 개인 키를 private.key라는 파일로 저장
# -out request.csr: 생성된 인증서 서명 요청(CSR)을 request.csr이라는 파일로 저장. 인증 기관(CA)에 제출되어 인증서를 발급받는 데 사용.
root@Ubuntu:/var/www/html/nk# openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out request.csr
....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+.......+...............+..............+.......+..+......+.+.....+...............+......+...+.+...+...+...+.........+...+..+.+.........+.....+......+.......+..+.+......+.....+...+.......+..............+.+...........+....+......+.....+.......+.....+...............+.+......+.........+..+..........+...+...............+....................+......+................+............+..+...+......+.+....................+.+........+.+......+..+.......+.....+...+.......+...+......+..+......................+..+..........+...+........+...+......+...+............+...+.+..+...+....+..+.........+..........+.....+....+...+.........+...+........+....+........+......+.+......+...+....................+...................+..+.+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.+....+......+..+...+....+...+......+..+............+...............+.......+...+...+..+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+......+....+..+.......+..+...+......+....+..+.+........+............+....+........+................+..+....+...+.................+...+......+.+...+.....+...+....+.........+.........+............+........+.+..+...+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
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) [AU]:KR
State or Province Name (full name) [Some-State]:Seoul
Locality Name (eg, city) []:Seoul
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Kong.Ltd
Organizational Unit Name (eg, section) []:IT Deprtment
Common Name (e.g. server FQDN or YOUR name) []:iqsp.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
root@Ubuntu:/var/www/html/nk# ls
root@Ubuntu:/var/www/html/nk# ls
private.key request.csr
3. 자체 서명 인증서 생성
openssl x509 -req -days 365 -in request.csr -signkey private.key -out selfsigned.crt
# x509: OpenSSL의 x509 명령은 인증서를 생성하거나 처리하는데 사용. req 명령을 통해 CSR을 생성한 후, 이 명령으로 실제 인증서를 생성한다.
# -req: req 옵션은 인증서 서명 요청(CSR)을 기반으로 인증서를 생성
# -days 365: 생성할 인증서의 유효 기간
# -in request.csr: 이 옵션은 입력 파일을 지정하는 옵션으로, 앞서 생성한 CSR 파일인 request.csr을 사용하여 인증서를 생성
# -signkey private.key: private.key 파일을 사용하여 인증서를 자체 서명(self-sign). CA를 거치지 않고 서버 자체 인증서 서명.
# -out selfsigned.crt: 생성된 인증서를 selfsigned.crt라는 파일로 저장
root@Ubuntu:/var/www/html/nk# openssl x509 -req -days 365 -in request.csr -signkey private.key -out selfsigned.crt
Certificate request self-signature ok
subject=C = KR, ST = Seoul, L = Seoul, O = Kong.Ltd, OU = IT Deprtment, CN = iqsp.com
root@Ubuntu:/var/www/html/nk# ls
private.key request.csr selfsigned.crt
4. Apache SSL 모듈 활성화
root@Ubuntu:/var/www/html/nk# a2enmod ssl
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
systemctl restart apache2
root@Ubuntu:/var/www/html/nk# systemctl restart apache2
5. Apache VirtualHost 443 수정
root@Ubuntu:/var/www/html/nk# vim /etc/apache2/sites-available/default-ssl.conf
31, 32 line의 다음과 같이 파일 경로를 수정.
SSLCertificateFile /etc/ssl/certs/selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/private.key
6. 파일 위치 수정
root@Ubuntu:/var/www/html/nk# mv selfsigned.crt /etc/ssl/certs/selfsigned.crt
root@Ubuntu:/var/www/html/nk# mv private.key /etc/ssl/private/private.key
7. SSL 설정 활성화
root@Ubuntu:/var/www/html/nk# a2ensite default-ssl.conf
Enabling site default-ssl.
To activate the new configuration, you need to run:
systemctl reload apache2
root@Ubuntu:/var/www/html/nk# systemctl restart apache2
8. https:// 로 접속
'네트워크 및 서버 > 서버' 카테고리의 다른 글
Web Server 로드밸런싱 (0) | 2024.12.02 |
---|---|
Clamav / Amavis (0) | 2024.11.25 |
서버 실습 (0) | 2024.11.15 |
SNMP(Agent) 설정 / MRTG, Cacti 설치 (0) | 2024.10.25 |
SNMP (0) | 2024.10.25 |