๋ฐ์ํ
ํ๊ฒฝ : Ubuntu 20.04 + apache2
- OpenSSL ์ค์น ๋ฐ ์ธ์ฆ์ ๋ฐ๊ธ
- Apache SSL ์ ์ฉ
OpenSSL ์ค์น
$ sudo apt install openssl
CA ์ธ์ฆ์ ์์ฑ
private key
์์ฑ
$ openssl genrsa -des3 -out server.key 2048
Enter pass phrase for server.key : (๊ฐ์ธํค ์ํธ ์
๋ ฅ)
- CSR(Certificate Sinning Request) ์ธ์ฆ์์ฒญ์ ์์ฑ
$ openssl req -new -days 365 -key server.key -out server.csr
Enter pass phrase for server.key: (์ด์ ์ ์
๋ ฅํ ๊ฐ์ธํค ์ํธ)
์ถ๊ฐ๋ก ์ ๋ ฅํ๋ ๋ถ๋ถ์ ์ ์ ํ ์ ๋ ฅํ๊ณ ๋์ด๊ฐ๋ฉด ๋ฉ๋๋ค.
- ๊ฐ์ธํค password ์ ๊ฑฐ
- ๊ฐ์ธํค์ ํจ์ค์๋๊ฐ ์๋ค๋ฉด, ์ํ์น ๊ตฌ๋ ์๋ง๋ค ์ ๋ ฅํด์ผํ๊ธฐ ๋๋ฌธ์ ํธ์์ ์ ๊ฑฐ๋ฅผ ํฉ๋๋ค.
- SSL ๊ธฐ๋ฅ์๋ ๋ฌธ์ ์์ผ๋ ๊ฑฑ์ ํ์ง ์์ผ์ ๋ ๋ฉ๋๋ค.
$ sudo cp server.key server.key.backup
$ sudo openssl rsa -in server.key.backup -out server.key
Enter pass phrase for server.key.backup: (๊ฐ์ธํค ์ํธ)
์์ฒด์๋ช ์ธ์ฆ์ ์์ฑ
server.key
+server.csr
๋ฅผ ์ด์ฉํ์ฌ ์ธ์ฆ์ ์์ฒญ- ๊ธฐ๋ณธ ํฌ๋ฉง:
PEM (base64 encoding)
- ๊ธฐ๋ณธ ํฌ๋ฉง:
$ sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
- ์ธ์ฆ์ ํ์ธ
$ ls -l server*
$ openssl x509 -in server.crt -text
Apache SSL ์ ์ฉ
- SSL ๋ชจ๋ enable
$ sudo a2enmod ssl
- ํธ์๋ฅผ ์ํ SSL ์ ์ฉ ๋๋ ํ ๋ฆฌ ์์ฑ
$ sudo mkdir /etc/apache2/ssl
- ์์ฑํ ์ธ์ฆ์ ๋ณต์ฌ
$ sudo cp server* /etc/apache2/ssl/
- ๋ณด์์ ์ํด ์์ ๊ถ ๋ฐ ๊ถํ ๋ณ๊ฒฝ
$ sudo chown -R root:root /etc/apache2/ssl
$ sudo chmod 700 /etc/apahce2/ssl
$ sudo chmod 600 /etc/apache2/ssl/*.*
VirtualHost ์ค์
- ๋๋ ํ ๋ฆฌ ๋ณ๊ฒฝ
$ cd /etc/apache2/site-available
default-ssl.conf
๋ฅผ ์ฌ์ฉ ํ ๋๋ฉ์ธ ๋ช ์ผ๋ก ๋ณต์ฌ
$ sudo cp default-ssl.conf example-ssl.conf
example-ssl.conf
์์
$ sudo vi example-ssl.conf
# ์๋์ ๋ด์ฉ ์ฃผ์ ํด์ ๋ฐ ์์
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
example-ssl.conf
enable
$ sudo a2ensite example-ssl.conf
- apache ์ฌ์์
$ sudo service apache2 restart
REFERENCES
๋ฆฌ๋
์ค ์์ฒด์๋ช
SSL ์ธ์ฆ์ ์์ฑ - ์ ํ์ํค
HTTPS์ SSL ์ธ์ฆ์ - ์ํ์ฝ๋ฉ
WEBDIR :: Ubuntu ์ฐ๋ถํฌ Apache(์ํ์น) SSL ์ ์ฉ
์ธ์์ ๋ชจ๋ ๊ธฐ๋ก :: Ubuntu ์ํ์น(Apache) OpenSSL ์ ์ฉ
๊ฐ์ฌํฉ๋๋ค.
๋ฐ์ํ