概要
ngin で 自己署名証明書(オレオレ証明書)を設定する。自己署名証明書でも暗号化はされるので、自分で利用する分には問題ない。
証明書作成
fabfile の該当箇所は以下。コピペして実行しても良い。途中でパスワードなど聞かれるが、全部空で良い。
@task
def setup_ssl():
"""
オレオレ証明書の作成
"""
work_dir = '/opt/nginx/conf/'
with cd('{0}'.format(work_dir)):
# pass hoge
sudo('openssl genrsa -des3 -out server.key 1024')
sudo('openssl req -new -key server.key -out server.csr')
sudo('cp server.key server.key.org')
sudo('openssl rsa -in server.key.org -out server.key')
sudo('openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt')
nginxの設定
設定ファイルは以下のようになる。
daemon off;
worker_processes 5;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
error_log /opt/nginx/var/log/nginx-error.log debug;
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_comp_level 2;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
server {
listen 80;
# 443 ポートを有効にする
listen 443;
server_name localhost;
# SSL を有効にして、証明書のパスを指定
ssl on;
ssl_certificate /opt/nginx/conf/server.crt;
ssl_certificate_key /opt/nginx/conf/server.key;
charset utf-8;
location / {
root /opt/www/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# nginx status
location ^~ /nginx_status {
stub_status on;
access_log off;
}
}
}
ファイアーウォールの設定等している場合は 443 ポートを開放する。
あとは再起動して、https でアクセスすれば良い。
以上