라즈파이 "Raspberry Pi 3"에서 HTTP/2 서버를 세워 인터넷에 공짜로 공개하는 절차 (보안 평가 : A +)
1. 개요
Raspberry Pi 3에 최신 Nginx (1.9 계열)를 설치하고 HTTP2 서버 설치, 무료 동적 DNS 서비스 및 서버 인증서를 설정하여 공짜로 그 서버를 인터넷에 공개하는 절차입니다.
「Qualys SSL Report」의 보안 평가가 「A+」가 골.
2. 절차
2.1. 최신 Nginx 도입
2.1.1. 패키지 다운로드 소스 설정 파일에 Raspbian GNU/Linux 9 (코드명 "stretch") 추가
sudo su -
echo "deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi" >> /etc/apt/sources.list
cat /etc/apt/sources.list
exit
2.1.2./etc/apt/preferences 파일 작성
sudo su -
echo "Package: *" >> /etc/apt/preferences
echo "Pin: release n=jessie" >> /etc/apt/preferences
echo "Pin-Priority: 600" >> /etc/apt/preferences
cat /etc/apt/preferences
exit
2.1.3. Nginx 도입
sudo apt-get install -t stretch nginx
2.2. "Dynamic DNS" 설정
Qiita : 도메인 획득에서 DDNS 설정까지 참조.
cron 설정
도메인 및 IP 주소 연결을 정기적으로 업데이트합니다.
*/10 * * * * wget -q -O /dev/null http://(ユーザID):(パスワード)@www.mydns.jp/login.html
2.2. 서버 인증서 얻기
Let's Encrypt 포털 포털 : 사용법 참조.
cron 설정
증명서의 기한은 3개월이므로 1개월에 1회 증명서의 갱신을 실시한다.
00 00 01 * * /(インストールパス)/letsencrypt/letsencrypt-auto certonly --webroot -w /(公開ディレクトリ)/ -d (ドメイン名)
2.3.Nginx 설정
도메인명으로 설정 파일을 「/etc/nginx/sites-available」아래에 작성해 「/etc/nginx/sites-enabled」에 심볼릭 링크를 작성한다.
도메인별 구성 파일의 내용.
server {
server_name (ドメイン名) www.(ドメイン名);
listen 80;
listen [::]:80;
return 301 https://$host$request_uri;
}
server {
server_name (ドメイン名) www.(ドメイン名);
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# Specifies the enabled ciphers.
ssl_ciphers AESGCM:HIGH:!aNULL:!MD5;
# Certificate.
ssl_certificate /etc/letsencrypt/live/(ドメイン名)/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/(ドメイン名)/privkey.pem;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
# Enable SSL session resume.
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# Perfect Forward Security (PFS).
ssl_prefer_server_ciphers on;
# Online Certificate Status Protocol (OCSP).
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/(ドメイン名)/fullchain.pem;
resolver 8.8.4.4 8.8.8.8 valid=300s;
resolver_timeout 10s;
# HTTP Strict Transport Security (HSTS).
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains;';
# Do not allow this site to be displayed in iframes
add_header X-Frame-Options DENY;
# Do not permit Content-Type sniffing.
add_header X-Content-Type-Options nosniff;
# log
access_log /(ログファイルのパス)/(ドメイン名).access.log;
error_log /(ログファイルのパス)/(ドメイン名).error.log;
# location
location / {
root /(公開ディレクトリ);
index index.html index.htm index.php;
}
}
ssl_dhparam 파일은 「openssl dhparam 2048 -out dhparam.pem」으로 작성.
3. 확인
3.1.Nginx를 다시 시작하여 도메인에 액세스.
3.2. htps //w w.bs. 이 m / sl st / 에 액세스해, 보안 평가를 실시.
자, 준비가 됐다.
OS 보안/방화벽/모니터링 설정을 잊지 마십시오.
Reference
이 문제에 관하여(라즈파이 "Raspberry Pi 3"에서 HTTP/2 서버를 세워 인터넷에 공짜로 공개하는 절차 (보안 평가 : A +)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/maemori/items/ee53cc099ac1d262b6da
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sudo su -
echo "deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi" >> /etc/apt/sources.list
cat /etc/apt/sources.list
exit
sudo su -
echo "Package: *" >> /etc/apt/preferences
echo "Pin: release n=jessie" >> /etc/apt/preferences
echo "Pin-Priority: 600" >> /etc/apt/preferences
cat /etc/apt/preferences
exit
sudo apt-get install -t stretch nginx
*/10 * * * * wget -q -O /dev/null http://(ユーザID):(パスワード)@www.mydns.jp/login.html
00 00 01 * * /(インストールパス)/letsencrypt/letsencrypt-auto certonly --webroot -w /(公開ディレクトリ)/ -d (ドメイン名)
server {
server_name (ドメイン名) www.(ドメイン名);
listen 80;
listen [::]:80;
return 301 https://$host$request_uri;
}
server {
server_name (ドメイン名) www.(ドメイン名);
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# Specifies the enabled ciphers.
ssl_ciphers AESGCM:HIGH:!aNULL:!MD5;
# Certificate.
ssl_certificate /etc/letsencrypt/live/(ドメイン名)/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/(ドメイン名)/privkey.pem;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
# Enable SSL session resume.
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# Perfect Forward Security (PFS).
ssl_prefer_server_ciphers on;
# Online Certificate Status Protocol (OCSP).
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/(ドメイン名)/fullchain.pem;
resolver 8.8.4.4 8.8.8.8 valid=300s;
resolver_timeout 10s;
# HTTP Strict Transport Security (HSTS).
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains;';
# Do not allow this site to be displayed in iframes
add_header X-Frame-Options DENY;
# Do not permit Content-Type sniffing.
add_header X-Content-Type-Options nosniff;
# log
access_log /(ログファイルのパス)/(ドメイン名).access.log;
error_log /(ログファイルのパス)/(ドメイン名).error.log;
# location
location / {
root /(公開ディレクトリ);
index index.html index.htm index.php;
}
}
3.1.Nginx를 다시 시작하여 도메인에 액세스.
3.2. htps //w w.bs. 이 m / sl st / 에 액세스해, 보안 평가를 실시.
자, 준비가 됐다.
OS 보안/방화벽/모니터링 설정을 잊지 마십시오.
Reference
이 문제에 관하여(라즈파이 "Raspberry Pi 3"에서 HTTP/2 서버를 세워 인터넷에 공짜로 공개하는 절차 (보안 평가 : A +)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/maemori/items/ee53cc099ac1d262b6da
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(라즈파이 "Raspberry Pi 3"에서 HTTP/2 서버를 세워 인터넷에 공짜로 공개하는 절차 (보안 평가 : A +)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/maemori/items/ee53cc099ac1d262b6da텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)