โš™๏ธ Devops/๐Ÿง Linux

[Ubuntu] Apache(์•„ํŒŒ์น˜) SSL ์ ์šฉ

2022. 3. 27. 17:29
๋ชฉ์ฐจ
  1. OpenSSL ์„ค์น˜
  2. CA ์ธ์ฆ์„œ ์ƒ์„ฑ
  3. ์ž์ฒด์„œ๋ช… ์ธ์ฆ์„œ ์ƒ์„ฑ
  4. Apache SSL ์ ์šฉ
  5. VirtualHost ์„ค์ •
  6. REFERENCES
๋ฐ˜์‘ํ˜•

ํ™˜๊ฒฝ : Ubuntu 20.04 + apache2

 

  1. OpenSSL ์„ค์น˜ ๋ฐ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰
  2. 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 ์ ์šฉ

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ
  1. OpenSSL ์„ค์น˜
  2. CA ์ธ์ฆ์„œ ์ƒ์„ฑ
  3. ์ž์ฒด์„œ๋ช… ์ธ์ฆ์„œ ์ƒ์„ฑ
  4. Apache SSL ์ ์šฉ
  5. VirtualHost ์„ค์ •
  6. REFERENCES
'โš™๏ธ Devops/๐Ÿง Linux' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Linux] scp ๋ช…๋ น์–ด - ์„œ๋ฒ„๋กœ ํŒŒ์ผ ์ „์†ก ๋ฐ ๋‹ค์šด
  • [Linux] systemctl ๋ช…๋ น์–ด๋กœ ์„œ๋น„์Šค ๋“ฑ๋ก, ์ƒ์„ฑ, ์‚ญ์ œ
iseunghan
iseunghan
๊พธ์ค€ํ•˜๊ฒŒ ์—ด์‹ฌํžˆ..
iseunghan
iseunghan

๊ณต์ง€์‚ฌํ•ญ

  • ์–ด์ œ๋ณด๋‹ค ๋‚˜์€ ์˜ค๋Š˜์ด ๋˜๊ธฐ ์œ„ํ•ด ๐Ÿ”ฅ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (260)
    • ๐Ÿ’ Spring (14)
      • ๊ฐœ๋… ๋ฐ ์ดํ•ด (2)
      • Spring ํ•ต์‹ฌ ๊ธฐ์ˆ  (24)
      • Spring REST API (8)
      • Spring MVC, DB ์ ‘๊ทผ ๊ธฐ์ˆ  (7)
      • Spring Security (23)
      • Spring in Action (1)
    • ๐ŸŒป JAVA (84)
      • ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ (20)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ž๋ฃŒ๊ตฌ์กฐ (13)
      • ๋””์ž์ธ ํŒจํ„ด (7)
      • ์ •๋ฆฌ์ •๋ฆฌ์ •๋ฆฌ (43)
      • JUnit (1)
    • ๐Ÿ”– Snippets (3)
      • Javascript (3)
    • โš™๏ธ Devops (22)
      • โ› Git (11)
      • ๐Ÿณ Docker (6)
      • ๐Ÿง Linux (3)
      • ๐ŸŒˆ Jenkins (1)
      • ๐Ÿ“ฌ Kafka (1)
    • ๐Ÿ’ฌ ETC.. (4)
      • ๐Ÿ’ป macOS (2)
    • ๐ŸŒง๏ธ ORM (2)
      • JPA (2)
    • ๐Ÿ Python (1)
    • ๐Ÿ“š Databases (15)
      • ์˜ค๋ผํด๋กœ ๋ฐฐ์šฐ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ๋ก ๊ณผ ์‹ค์Šต(2ํŒ) (3)
      • RealMySQL 8.0 (8)
    • ๐Ÿ”ฅ Computer Science (5)
      • ๐Ÿ“ก ๋„คํŠธ์›Œํฌ (5)
    • ๐Ÿท๏ธ ํ˜‘์—… (1)
    • ๐Ÿ“œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (38)
      • BAEKJOON\์ˆ˜ํ•™ 1, ์ˆ˜ํ•™ 2 (8)
      • BAEKJOON\์žฌ๊ท€ (5)
      • BAEKJOON\๋ธŒ๋ฃจํŠธ ํฌ์Šค (3)
      • BAEKJOON\์ •๋ ฌ (1)
      • BAEKJOON\๋ฐฑํŠธ๋ž˜ํ‚น (5)
      • BAEKJOON\BFS, DFS (6)
      • BAEKJOON\์ด๋ถ„ํƒ์ƒ‰ (1)
      • BAEKJOON\๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ (9)
      • BAEKJOON\๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ (0)
    • โœจ ISEUNGHAN (1)

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
iseunghan
[Ubuntu] Apache(์•„ํŒŒ์น˜) SSL ์ ์šฉ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.