SSL 모든 것! 암호화 된 SSL 암호화를 사용하여 하위 도메인을 통해 웹 서비스 프록시하기
♨ 카랜더 일정 :
링크
첨부
컨텐츠 정보
- 10,858 조회
본문
편집 : 보다 영구적 인 http 리디렉션 방식으로 가이드를 업데이트했습니다.
편집 : DSM 6이 출시되면 전체 프로세스가 변경되고 대부분의 단계를 이제 DSM에서 직접 수행 할 수 있습니다.
이 기능은 다양한 도메인의 포트 번호에서 호스팅되는 웹 서비스를 하위 도메인 (* .example.com)을 통해 액세스 할 수 있도록 설정 한 다음 자유롭게 암호화 된 인증서를 사용하여 SSL 암호화로 해당 서비스를 보호하기위한 지침입니다. 이것을 설정하려면 다음이 필요합니다.
자신의 도메인diskstation의 웹 루트를 마운트 할 수있는 좋아하는 리눅스 배포판을 실행하는 가상 머신디스크 스테이션에서 웹 스테이션 활성화이미 하나의 도메인에서 암호화 인증서를 허용 한 경우 letsencrypt를 사용하여 최대 100 개의 하위 도메인을 포함하는 확장 된 인증서로 대체 할 수 있습니다.
왜 이걸하고 싶니?
기본적으로 지원하지 않는 웹 서비스를 포함하여 모든 웹 서비스에 대해 무료 SSL 보호를 제공합니다.ssl을 지원하지만 복잡한 설정 단계가있는 앱의 SSL 보호를 단순화합니다.자체 서명 된 인증서에 대한 웹 브라우저의 보안 예외가 없어졌습니다.라우터 / 방화벽 포트 포워딩 단순화 (필요한 열린 포트만 80 및 443)도메인 이름은 포트 번호를 기억하기 쉽습니다.이 구성은 로컬 네트워크의 diskstation 사이의 트래픽을 암호화하지 않습니다. 근거리 통신망 트래픽을 암호화해야하는 경우 diskstation의 웹 서비스에 대한 직접 요청을 차단하거나 다른 솔루션을 찾으십시오.
DSM 6 DSM 6
이 내부 웹 서버를 Apache에서 nginx로 전환하는 것처럼 보입니다. 이러한 변경 사항으로 인해 DSM 5에서 작동했던 역방향 프록시 스크립트는 더 이상 작동하지 않습니다. 다행히 Synology는 역방향 프록시 기능을 DSM 웹 인터페이스에 직접 추가했습니다.
먼저 nginx config 용 콧수염 템플릿에 HTTP -> HTTPS 리디렉션을 설정해야합니다. 리디렉션이 없으면 http : //를 사용하는 방문자가 nginx 서버에서 HTTP 403 오류를 수신하며 서비스 내의 링크가 작동하지 않을 수 있습니다.
SSH를 관리자 계정으로 synology에 추가하십시오.루트 계정으로 전환또는 다음 터미널 명령 모두에 'sudo'를 추가하십시오vi와 같은 텍스트 편집기에서 /usr/syno/share/nginx/WWWService.mustache를 엽니 다. 변경하기 전에 안전을 위해 구성을 백업하십시오.다음과 같은 파일의 첫 행을 찾으십시오.
이 모양으로 바꾸어 라.
다음 번에 nginx 설정 파일이 DSM 웹 인터페이스를 통해 변경되면 템플릿에 추가 된 HTTP> https 리디렉션이 config에 적용됩니다.301 리디렉션을 /etc/nginx/nginx.conf의 nginx 구성 파일에 수동으로 추가 한 다음 nginx를 다시로드하여 변경 사항을 적용 할 수도 있습니다
이제 DSM 웹 인터페이스의 각 서비스에 대한 역방향 프록시를 "제어판> Application Portal> 역방향 프록시"에 추가하십시오.
DSM 5에서 업그레이드하고 기존의 Let 's Encrypt certs를 유지하면서 DSM 6에서 새로 통합 된 Let 's Encrypt 기능을 시험해 볼 기회가 없었습니다.이 게시물은 사용 기회가 생기면 지침으로 업데이트됩니다.
DSM 5.X
인증서 얻기
DSM 5.x는 letsencrypt를 로컬에서 실행하는 것을 지원하지 않으며 DSM 6은 하위 도메인 (인증서 주체 대체 이름)에 대한 요청에 문제가 있다고보고되어 있습니다. 이러한 문제를 해결하기 위해 우리는 외부 리눅스 VMM에서 인증서 암호화 코드 요청 코드를 실행할 수 있습니다.
dip987의 게시물 은 단일 도메인에서 암호화 암호화를 시작하는 훌륭한 지침입니다. 여러 하위 도메인을 요청할 때 모든 도메인에 대한 acme 챌린지를 수동으로 처리하는 것이 어려워집니다. webroot 옵션을 사용하여 챌린지 파일을 만드는 handleencrypt 핸들을 사용하면 요청이 간단 해집니다.
내 하위 도메인에 대한 Apache 역 프록시를 사용하여 certs를 요청하는 문제가 발생하여 cert 요청을하는 동안 이러한 프록시를 비활성화하는 것이 좋습니다. 웹 스테이션은 추가 구성 ( http://does-not-exist.example.com/.well-known > http://example.com/.well) 없이 존재하지 않는 하위 도메인에 대한 웹 요청을 기본 도메인으로 다시 라우팅해야합니다. - 알았다 ). 내 하위 도메인에 대한 Apache 역 프록시를 사용하여 certs를 요청하는 문제가 발생하여 cert 요청을하는 동안 이들을 비활성화하는 것이 좋습니다. 웹 스테이션은 추가 구성없이 존재하지 않는 하위 도메인에 대한 웹 요청을 기본 도메인으로 다시 라우팅해야합니다 ( http://does-not-exist.example.com/.well-known > http://example.com/.well - 알았다 ). 내 하위 도메인에 대한 Apache 역 프록시를 사용하여 certs를 요청하는 문제가 발생하여 cert 요청을하는 동안 이들을 비활성화하는 것이 좋습니다. 웹 스테이션은 추가 구성없이 존재하지 않는 하위 도메인에 대한 웹 요청을 기본 도메인으로 다시 라우팅해야합니다 ( http://does-not-exist.example.com/.well-known > http://example.com/.well - 알았다 ).
하위 도메인을 synology 웹 서비스에 매핑하도록 설정된 기존 URL 전달 규칙을 비활성화합니다.리눅스 VM을 스핀 업diskstation의 웹 루트를 로컬 VM에 마운트하십시오. 이 작업을 수행하는 방법에는 여러 가지가 있으므로 여기서는 자세히 설명하지 않겠습니다. letsencrypt가 루트로 실행되기 때문에 마운트 경로가 VM의 루트 사용자에 의해 쓰기 가능해야합니다. 이 가이드에서 우리는 웹 루트 경로가 VM의 '/ mnt / example / web'에 마운트되어 있다고 말할 것입니다.acme url을 테스트하십시오. VM에 관해서 :
이제 웹 브라우저에서 http://example.com/.well-known/acme-challenge/test 를 가져올 수 있는지 확인하십시오 .VM에서 최신의 암호화 코드를 다운로드하십시오 :
인증서를 요청하십시오.
여기서는 example.com 도메인과 메일, 파일 및 DSM 하위 도메인의 유효성을 검사하는 단일 인증서를 요청하고 있습니다. 필요한만큼 하위 도메인을 추가하십시오.모든 것이 잘 진행되면 요청은 성공적으로 처리되며 letsencrypt는 기본 도메인과 요청한 하위 도메인에 유효한 단일 인증서를 발급합니다. 새 인증서 구성 요소는 VM 에있는 /etc/letsencrypt/archive/example.com에서 찾을 수 있습니다 . Synology (제어판> 보안> 인증서> "인증서 가져 오기")에서 privkey # .pem, cert # .pem 및 chain # .pem을 Synology로 가져옵니다. 이 파일의 #은 요청을 성공적으로 수행 할 때마다 1 씩 증가합니다.
synology 패키지 웹 서비스를 하위 도메인 URL
로 리디렉션 내장 프록시 서버를 사용하여 하위 도메인을 역 프록시를 사용하여 웹 서비스로 리디렉션합니다. Primal Cortex 는 이미 이것을 설정하는 훌륭한 가이드를 제공했습니다. Michi가 제공 한 스크립트 설정에 대해 자세히 설명한 섹션의 아래쪽으로 스크롤하십시오 .
텍스트 편집기에서 Michi의 스크립트를 엽니 다.스크립트의 첫 번째 행에 누락 된 # 을 추가하여 읽습니다.사이트 도메인 이름과 일치하도록 스크립트의 4 번째 줄에서 url 변수 변경스크립트의 맨 아래에있는 섹션을 편집하여 웹 서비스가 실행되는 포트 번호와 하위 도메인 이름을 일치시킵니다.(선택 사항) 다음 섹션에 리디렉션 규칙을 추가하여 향후 acme 하위 도메인 인증서 요청을 기본 도메인으로 리디렉션합니다.
이제 :
이 규칙이 없으면 새 인증서를 요청할 때 일시적으로 리디렉션을 사용하지 않아야합니다. 규칙을 적용하더라도 인증서 요청에 여전히 문제가 발생할 수 있습니다.시작할 때 실행할 수 있도록 디스크 스테이션의 /usr/local/etc/rc.d/S99subdomains.sh 에 스크립트를 저장하십시오 .스크립트를 다음과 같이 실행 가능하게 만듭니다.다음과 함께 스크립트를 시작하십시오.
이제 모든 것이 제자리에 있어야합니다. 웹 브라우저에서 하위 도메인 URL을 열면 브라우저 url 바에 사이트가 확인 된 SSL 인증서로 보호된다는 자물쇠 아이콘이 표시됩니다. http : // 를 사용하는 요청 은 자동으로 https : // 로 리디렉션되어야 합니다 .
편집 : DSM 6이 출시되면 전체 프로세스가 변경되고 대부분의 단계를 이제 DSM에서 직접 수행 할 수 있습니다.
이 기능은 다양한 도메인의 포트 번호에서 호스팅되는 웹 서비스를 하위 도메인 (* .example.com)을 통해 액세스 할 수 있도록 설정 한 다음 자유롭게 암호화 된 인증서를 사용하여 SSL 암호화로 해당 서비스를 보호하기위한 지침입니다. 이것을 설정하려면 다음이 필요합니다.
자신의 도메인diskstation의 웹 루트를 마운트 할 수있는 좋아하는 리눅스 배포판을 실행하는 가상 머신디스크 스테이션에서 웹 스테이션 활성화이미 하나의 도메인에서 암호화 인증서를 허용 한 경우 letsencrypt를 사용하여 최대 100 개의 하위 도메인을 포함하는 확장 된 인증서로 대체 할 수 있습니다.
왜 이걸하고 싶니?
기본적으로 지원하지 않는 웹 서비스를 포함하여 모든 웹 서비스에 대해 무료 SSL 보호를 제공합니다.ssl을 지원하지만 복잡한 설정 단계가있는 앱의 SSL 보호를 단순화합니다.자체 서명 된 인증서에 대한 웹 브라우저의 보안 예외가 없어졌습니다.라우터 / 방화벽 포트 포워딩 단순화 (필요한 열린 포트만 80 및 443)도메인 이름은 포트 번호를 기억하기 쉽습니다.이 구성은 로컬 네트워크의 diskstation 사이의 트래픽을 암호화하지 않습니다. 근거리 통신망 트래픽을 암호화해야하는 경우 diskstation의 웹 서비스에 대한 직접 요청을 차단하거나 다른 솔루션을 찾으십시오.
DSM 6 DSM 6
이 내부 웹 서버를 Apache에서 nginx로 전환하는 것처럼 보입니다. 이러한 변경 사항으로 인해 DSM 5에서 작동했던 역방향 프록시 스크립트는 더 이상 작동하지 않습니다. 다행히 Synology는 역방향 프록시 기능을 DSM 웹 인터페이스에 직접 추가했습니다.
먼저 nginx config 용 콧수염 템플릿에 HTTP -> HTTPS 리디렉션을 설정해야합니다. 리디렉션이 없으면 http : //를 사용하는 방문자가 nginx 서버에서 HTTP 403 오류를 수신하며 서비스 내의 링크가 작동하지 않을 수 있습니다.
SSH를 관리자 계정으로 synology에 추가하십시오.루트 계정으로 전환
코드 : 모두 선택
sudo su -
코드 : 모두 선택
cp /usr/syno/share/nginx/WWWService.mustache /usr/syno/share/nginx/WWWService.mustache.bak
코드 : 모두 선택
server {
listen 80 default_server{{#reuseport}} reuseport{{/reuseport}};
listen [::]:80 default_server{{#reuseport}} reuseport{{/reuseport}};
listen 443 default_server ssl{{#reuseport}} reuseport{{/reuseport}};
listen [::]:443 default_server ssl{{#reuseport}} reuseport{{/reuseport}};
server_name _;
{{> /usr/syno/share/nginx/X-Accel}}
이 모양으로 바꾸어 라.
코드 : 모두 선택
server {
listen 80 default_server{{#reuseport}} reuseport{{/reuseport}};
listen [::]:80 default_server{{#reuseport}} reuseport{{/reuseport}};
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 default_server ssl{{#reuseport}} reuseport{{/reuseport}};
listen [::]:443 default_server ssl{{#reuseport}} reuseport{{/reuseport}};
server_name _;
{{> /usr/syno/share/nginx/X-Accel}}
코드 : 모두 선택
nginx -s reload
이제 DSM 웹 인터페이스의 각 서비스에 대한 역방향 프록시를 "제어판> Application Portal> 역방향 프록시"에 추가하십시오.
DSM 5에서 업그레이드하고 기존의 Let 's Encrypt certs를 유지하면서 DSM 6에서 새로 통합 된 Let 's Encrypt 기능을 시험해 볼 기회가 없었습니다.이 게시물은 사용 기회가 생기면 지침으로 업데이트됩니다.
DSM 5.X
인증서 얻기
DSM 5.x는 letsencrypt를 로컬에서 실행하는 것을 지원하지 않으며 DSM 6은 하위 도메인 (인증서 주체 대체 이름)에 대한 요청에 문제가 있다고보고되어 있습니다. 이러한 문제를 해결하기 위해 우리는 외부 리눅스 VMM에서 인증서 암호화 코드 요청 코드를 실행할 수 있습니다.
dip987의 게시물 은 단일 도메인에서 암호화 암호화를 시작하는 훌륭한 지침입니다. 여러 하위 도메인을 요청할 때 모든 도메인에 대한 acme 챌린지를 수동으로 처리하는 것이 어려워집니다. webroot 옵션을 사용하여 챌린지 파일을 만드는 handleencrypt 핸들을 사용하면 요청이 간단 해집니다.
내 하위 도메인에 대한 Apache 역 프록시를 사용하여 certs를 요청하는 문제가 발생하여 cert 요청을하는 동안 이러한 프록시를 비활성화하는 것이 좋습니다. 웹 스테이션은 추가 구성 ( http://does-not-exist.example.com/.well-known > http://example.com/.well) 없이 존재하지 않는 하위 도메인에 대한 웹 요청을 기본 도메인으로 다시 라우팅해야합니다. - 알았다 ). 내 하위 도메인에 대한 Apache 역 프록시를 사용하여 certs를 요청하는 문제가 발생하여 cert 요청을하는 동안 이들을 비활성화하는 것이 좋습니다. 웹 스테이션은 추가 구성없이 존재하지 않는 하위 도메인에 대한 웹 요청을 기본 도메인으로 다시 라우팅해야합니다 ( http://does-not-exist.example.com/.well-known > http://example.com/.well - 알았다 ). 내 하위 도메인에 대한 Apache 역 프록시를 사용하여 certs를 요청하는 문제가 발생하여 cert 요청을하는 동안 이들을 비활성화하는 것이 좋습니다. 웹 스테이션은 추가 구성없이 존재하지 않는 하위 도메인에 대한 웹 요청을 기본 도메인으로 다시 라우팅해야합니다 ( http://does-not-exist.example.com/.well-known > http://example.com/.well - 알았다 ).
하위 도메인을 synology 웹 서비스에 매핑하도록 설정된 기존 URL 전달 규칙을 비활성화합니다.리눅스 VM을 스핀 업diskstation의 웹 루트를 로컬 VM에 마운트하십시오. 이 작업을 수행하는 방법에는 여러 가지가 있으므로 여기서는 자세히 설명하지 않겠습니다. letsencrypt가 루트로 실행되기 때문에 마운트 경로가 VM의 루트 사용자에 의해 쓰기 가능해야합니다. 이 가이드에서 우리는 웹 루트 경로가 VM의 '/ mnt / example / web'에 마운트되어 있다고 말할 것입니다.acme url을 테스트하십시오. VM에 관해서 :
코드 : 모두 선택
mkdir -p /mnt/example/web/.well-known/acme-challenge
sudo echo "test" > /mnt/example/web/.well-known/acme-challenge/test
코드 : 모두 선택
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
코드 : 모두 선택
letsencrypt certonly --webroot-path /mnt/example/web/ -d example.com -d mail.example.com -d files.example.com -d dsm.example.com
synology 패키지 웹 서비스를 하위 도메인 URL
로 리디렉션 내장 프록시 서버를 사용하여 하위 도메인을 역 프록시를 사용하여 웹 서비스로 리디렉션합니다. Primal Cortex 는 이미 이것을 설정하는 훌륭한 가이드를 제공했습니다. Michi가 제공 한 스크립트 설정에 대해 자세히 설명한 섹션의 아래쪽으로 스크롤하십시오 .
텍스트 편집기에서 Michi의 스크립트를 엽니 다.스크립트의 첫 번째 행에 누락 된 # 을 추가하여 읽습니다.
코드 : 모두 선택
#!/bin/sh
코드 : 모두 선택
#Usage: subdomain redirected port. So for example audio 8800 will redirect audio.mydomain.com to the internal 8800 port.
redirectSubdomainTo audio 8800
redirectSubdomainTo dsm 5000
redirectSubdomainTo file 7000
redirectSubdomainTo note 9350
redirectSubdomainTo video 9007
코드 : 모두 선택
<VirtualHost *:80>
ServerName $1.$URL
<Location />
RedirectPermanent / https://$1.$URL/
</Location>
</VirtualHost>
코드 : 모두 선택
<VirtualHost *:80>
ServerName $1.$URL
<Location />
RedirectPermanent /.well-known/ http://${URL}/.well-known/
RedirectPermanent / https://$1.$URL/
</Location>
</VirtualHost>
코드 : 모두 선택
chmod +x /usr/local/etc/rc.d/S99subdomains.sh
코드 : 모두 선택
/usr/local/etc/rc.d/S99subdomains.sh start
이제 모든 것이 제자리에 있어야합니다. 웹 브라우저에서 하위 도메인 URL을 열면 브라우저 url 바에 사이트가 확인 된 SSL 인증서로 보호된다는 자물쇠 아이콘이 표시됩니다. http : // 를 사용하는 요청 은 자동으로 https : // 로 리디렉션되어야 합니다 .
목요일 에 2mny 님이 편집 한 2016 년 6 월 30 일 2:33 am, 총 3 번 편집 됨.
Guide: SSL all the things! Proxying web services through sub-domains with letsencrypt SSL encryption
Edit: Updated guide with a more permanent http redirect method.
Edit: With the release of DSM 6, the entire process changes and most steps can now be performed directly from DSM.
This is a guide for setting up web services that are hosted on various port numbers to be accessible through a sub-domain (*.example.com) and then protecting those services with SSL encryption using a free let's encrypt certificate. To set this up you will need:
Why would you want to do this?
DSM 6
It looks like DSM 6 switches the internal webserver from Apache to nginx. With these changes, the reverse proxy scripts that worked in DSM 5 no longer function. Luckily, Synology has added reverse proxy features directly into the DSM web interface.
First you will want to set up a HTTP -> HTTPS redirect in the moustache template for the nginx config. Without the redirect in place, visitors to your sites using http:// will receive a HTTP 403 error from the nginx server and links within services may not function. You may need to reapply the changes to the moustache file after installing DSM updates as new updates may overwrite the edited file:
Edit: With the release of DSM 6, the entire process changes and most steps can now be performed directly from DSM.
This is a guide for setting up web services that are hosted on various port numbers to be accessible through a sub-domain (*.example.com) and then protecting those services with SSL encryption using a free let's encrypt certificate. To set this up you will need:
- your own domain
- a virtual machine running your favorite linux distro that can mount the web root of your diskstation
- web station enabled on your diskstation
Why would you want to do this?
- provide free ssl protection for all web services, even those that do not natively support it
- simplify ssl protection for apps that support ssl but have complicated setup steps
- no more security exceptions in your web browsers for self-signed certs
- simplify router/firewall port forwarding (only open ports needed are 80 and 443)
- domain names are easier to remember that port numbers
DSM 6
It looks like DSM 6 switches the internal webserver from Apache to nginx. With these changes, the reverse proxy scripts that worked in DSM 5 no longer function. Luckily, Synology has added reverse proxy features directly into the DSM web interface.
First you will want to set up a HTTP -> HTTPS redirect in the moustache template for the nginx config. Without the redirect in place, visitors to your sites using http:// will receive a HTTP 403 error from the nginx server and links within services may not function. You may need to reapply the changes to the moustache file after installing DSM updates as new updates may overwrite the edited file:
- SSH into your synology with an admin account.
- switch to the root account with
뷰PDF 1,2
office view
관련자료
-
링크
댓글목록
등록된 댓글이 없습니다.