Nextcloud 파일서버 구축 2 (http -> https redirect)

zuckerfrei·2022년 12월 20일
0

Nextcloud

목록 보기
2/3

요약

apache, Load Balancer 를 활용하여 Nextcloud의 https redirect를 구현한 내용 정리

  • Nextcloud v20.0.14
  • CentOS 7.8
  • docker v20.10.15

1. https redirect이란?

  • 80 to 443 redirect
  • 개발자들이 아무리 SSL인증서를 적용시켜도, 사용자들은 naver.com 같은 도메인명으로(HTTP)로 입력해서 접속한다.
  • 사용자들에게 https로 접속하라고 안내, 강요를 할 수도 없는 노릇
  • HTTP로 접속할 경우 HTTPS로 접속되도록 설정을 미리 해두는 것이 좋다.
  • 참조, 참조2
  • 아래의 리다이렉트는 apache를 기준으로 작성했음
    • nginx같은 다른 웹서버로도 대체 가능하다

찾아본 바로는 크게 2가지 방법으로 구현할 수 있었다. 내용은 동일하지만 설정 대상 파일이 달랐다.

2. https redirect 구현 방법

1) httpd.conf 수정

  • apache설치 경로(서버마다 다를 수 있음) 에서 httpd.conf 파일을 찾아 수정한다
    • 예시) /etc/httpd/conf/httpd.conf
  • httpd.conf파일에 VirtualHost 설정을 추가한다
    • VirtualHost 설정법 참조
    • 나는 httpd.conf 파일의 맨 밑에 추가했다
    • 예시) httpd.conf
      ...
      
      <VirtualHost *:80>
          ServerName 118.xx.xxx.xxx
      
          #433 redirect 설정
          <IfModule mod_rewrite.c>
              RewriteEngine On
              RewriteCond %{HTTPS} off
              RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
          </IfModule>
      </VirtualHost>
  • ServerName으로 접속해서 리다이렉트 여부를 확인한다
    • 위의 설정을 하지 않았을 경우 118.xx.xxx.xxx를 입력하여 접속하면 http://118.xx.xxx.xxx로 연결되어 아파치 테스트페이지가 열렸음
    • 설정 후에는 118.xx.xxx.xxx를 입력하여 접속하면 https://1118.xx.xxx.xxx 로 리다이렉트 된다.

2) httpd-vhost.conf 사용하여 참조하기

  • 위에서 설정한 VirtualHost를 httpd.conf에 직접 작성하는 것이 아니라, httpd-vhost.conf 파일에 작성한 후, 참조하도록 만들어서 적용할 수도 있다.
  • httpd.conf 수정
    • 참조
      # Virtual hosts 설정을 사용하는 경우 
      Include conf/extra/httpd-vhosts.conf <-- 주석해제

3. Nextcloud 적용

http 및 도메인으로만 접속시도할 경우 443 redirect 하는 작업을 Nextcloud에 적용시켰다.
아래와 같은 흐름으로 redirect가 되는 것으로 파악했다.
이것 때문에 이전 글의 docker-compose.yaml 에서 port를 90, 100로 설정했다.

  • 수정 파일 목록
    /etc/apache2/ports.conf
    /etc/apache2/sites-available/000-default.conf

  • 파일 수정
    /etc/apache2/ports.conf 참조

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 90
Listen 100

<IfModule ssl_module>
 Listen 443
</IfModule>

<IfModule mod_gnutls.c>
 Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

/etc/apache2/sites-available/000-default.conf

<VirtualHost *:100>
    ServerName [my-domain]

    #433 redirect 설정
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
    </IfModule>
</VirtualHost>

<VirtualHost *:90>
  ...
  # 이 아래는 수정하지 않음

다음 글에서는 Nextcloud 운영시 발생했던 이슈를 정리해보고자 한다.

profile
무설탕 음료를 좋아합니다

0개의 댓글