Conoha에서 Rails를 Let’s Encrypt로 상시 SSL과 HTTP2에 대응시킨다
4592 단어 letsencryptcentos7코노하
이름의 네임서버를 변경하는 경우
이런 느낌으로 변경할 수 있습니다.
코노하 네임서버 정보
ns-a1.conoha.io
ns-a2.conoha.io
ns-a3.conoha.io
Conoha에서 도메인 설정하기
그런 다음이 화면에서 도메인을 설정합니다.
A 레코드에 서버의 IP 주소를 설정하십시오.
잠시 시간이 지나면 반영됩니다.
도메인이 당겨지면 letsencrypt를 얻을 준비 OK입니다.
※전제조건으로서, 소유하고 있는 도메인으로 WEB 사이트가 공개되고 있을 필요가 있습니다.
letsencrypt 취득 참고 URL
your_domain_name 및 your_mail_address
자신의 도메인 이름과 이메일 주소로 바꾸십시오.
SSL 기능을 제공하기 위해 mod_ssl 모듈을 도입합니다.
$ yum -y install mod_ssl
letsencrypt 저장소를 복제
$ git clone https://github.com/letsencrypt/letsencrypt
letsencrypt 도움말 보기
$ ./letsencrypt-auto --help
Conoha에서 Ruby on Rails를 선택한 경우 path
./letsencrypt-auto certonly --webroot -w /usr/share/nginx/html -d your_domain_name -m your_mail_address --agree-tos
증명서 보관소
/etc/letsencrypt/live/your_domain_name/
포트 443 개방
# 確認
$ firewall-cmd --list-all
# アクセス許可
$ firewall-cmd --permanent --add-service=https
# 設定を有効化
$ firewall-cmd --reload
# 確認
$ firewall-cmd --list-all
nginx의 Version Up
nginx가 낡으면 http2에 대응할 수 없기 때문에, update 합니다.
vim /etc/yum.repos.d/nginx.repo
# nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
nginx update
yum update -y nginx
취약한 암호화 제품군 비활성화
$ mkdir /etc/nginx/ssl
$ cd /etc/nginx/ssl
$ openssl dhparam 2048 -out dhparam.pem
nginx 보관소
/etc/nginx/conf.d/sample.conf
nginx 기본 설정
server {
listen 80;
location ~ ^/sample/assets/(.*) {
alias /home/rails/sample/public/assets/$1;
}
location /sample {
proxy_pass http://unicorn;
}
}
변경 후 nginx 설정
참고
server {
listen 80;
listen [::]:80;
return 301 https://$host$request_uri;
}
server{
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
server_name your_domain_name;
ssl_certificate /etc/letsencrypt/live/your_domain_name/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain_name/privkey.pem;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL!eNull:!EXPORT:!DES:!3DES:!MD5:!DSS;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains;';
client_max_body_size 64M;
# OCSP Staplingを有効にする
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/your_domain_name/fullchain.pem;
# OCSP StaplingのためにはDNSリゾルバを指定する必要がある
resolver 8.8.8.8;
location ~ ^/sample/assets/(.*) {
alias /home/rails/sample/public/assets/$1;
}
location /sample {
proxy_pass http://unicorn;
}
}
Nginx 리로드
systemctl restart nginx
Rails를 데몬으로 시작
bundle exec rails s -p 8080 &
Qualys SSL Report의 보안 평가
이번 설정했을 때의 보안 평가는 A였습니다.
이것으로 Conoha에서 상시 SSL과 HTTP2에 대응할 수 있었습니다.
SSL의 대응을 할 수 있었으므로, 지금 화제의 Line-bot을 만들어 보는 것도 좋네요.
Reference
이 문제에 관하여(Conoha에서 Rails를 Let’s Encrypt로 상시 SSL과 HTTP2에 대응시킨다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tacyan/items/e17934baf078b84858af
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
./letsencrypt-auto certonly --webroot -w /usr/share/nginx/html -d your_domain_name -m your_mail_address --agree-tos
/etc/letsencrypt/live/your_domain_name/
# 確認
$ firewall-cmd --list-all
# アクセス許可
$ firewall-cmd --permanent --add-service=https
# 設定を有効化
$ firewall-cmd --reload
# 確認
$ firewall-cmd --list-all
vim /etc/yum.repos.d/nginx.repo
# nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
yum update -y nginx
$ mkdir /etc/nginx/ssl
$ cd /etc/nginx/ssl
$ openssl dhparam 2048 -out dhparam.pem
/etc/nginx/conf.d/sample.conf
server {
listen 80;
location ~ ^/sample/assets/(.*) {
alias /home/rails/sample/public/assets/$1;
}
location /sample {
proxy_pass http://unicorn;
}
}
server {
listen 80;
listen [::]:80;
return 301 https://$host$request_uri;
}
server{
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
server_name your_domain_name;
ssl_certificate /etc/letsencrypt/live/your_domain_name/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain_name/privkey.pem;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL!eNull:!EXPORT:!DES:!3DES:!MD5:!DSS;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains;';
client_max_body_size 64M;
# OCSP Staplingを有効にする
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/your_domain_name/fullchain.pem;
# OCSP StaplingのためにはDNSリゾルバを指定する必要がある
resolver 8.8.8.8;
location ~ ^/sample/assets/(.*) {
alias /home/rails/sample/public/assets/$1;
}
location /sample {
proxy_pass http://unicorn;
}
}
systemctl restart nginx
bundle exec rails s -p 8080 &
Reference
이 문제에 관하여(Conoha에서 Rails를 Let’s Encrypt로 상시 SSL과 HTTP2에 대응시킨다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tacyan/items/e17934baf078b84858af텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)