본문 바로가기

전생의 기억/프로그래밍

웹브라우저에서, File 서버의 특정 파일에 접근할 때 발생한 Synology WebDav CORS 문제 해결 방법

문제 : WebDav 프로토콜로 구성된 Synology에 접근하기 위해 특정 파일 0000/0000.mp4 에 접근에 실패

해결 방법 : Synology WebDav Server에 CORS 관련 헤더 허용 설정이 GUI로 존재하지 않아서, ssh 22번 포트로 접근하여 WebdavServer에 접근한 후, 추가적인 설정 옵션을 적용해줌으로써 해결.

 

주의 사항 : Synology 관리 페이지에서, 설치한 WebDav ssh 접속이 가능하도록 옵션 허용 및 포트번호 체크 필수


해결 방법은 아래 링크 참조

https://github.com/keeweb/keeweb/issues/703#issuecomment-326404286

 

아래처럼 httpd.conf-webdav파일과 httpd-ssl.conf-webdav 파일 각각에 적당한 곳에다가 옵션을 추가해주고, webdavServer 패키지를 재시작해주면 된다.

나같은 경우, sudo ./start_stop.sh 명령어가 안먹어서 그냥 Synology 관리 페이지에서 webdavServe 패키지 창에서 직접 재시작해주었다.

 

ssh ip-synology
cd /var/packages/WebDAVServer/target/etc/httpd/
sudo vim conf/httpd.conf-webdav add
   LoadModule rewrite_module modules/mod_rewrite.so
sudo vim conf/extra/httpd-ssl.conf-webdav add :
   Header always set Access-Control-Allow-Origin "*"
   Header always set Access-Control-Allow-Headers "origin, content-type, cache-control, accept, authorization, if-match, destination, overwrite"
   Header always set Access-Control-Expose-Headers "ETag"
   Header always set Access-Control-Allow-Methods "GET, HEAD, POST, PUT, OPTIONS, MOVE, DELETE, COPY, LOCK, UNLOCK"
   Header always set Access-Control-Allow-Credentials "true"

   RewriteEngine on
   RewriteCond %{REQUEST_METHOD} OPTIONS
   RewriteRule ^(.*)$ blank.html [R=200,L,E=HTTP_ORIGIN:%{HTTP:ORIGIN}]

cd /var/packages/WebDAVServer/target/tools
sudo ./start_stop.sh start restart