カメニッキ

カメとインコと釣りの人です

CentOS6.5 + nginx1.9.9 + StartSSL でhttp2をつかう

とりあえず動かすところまでやってみる。

環境

KagoyaVPS Centos6.5 64bit minimal

# /etc/sysconfig/iptables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
COMMIT

*filter
:INPUT   ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT  ACCEPT [0:0]

-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A OUTPUT -p tcp --dport 53 -j ACCEPT
-A OUTPUT -p udp --dport 53 -j ACCEPT

##### HTTP #####
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80    -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443   -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

##### SSH ####
-A INPUT -p tcp --dport 2753 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

# /etc/sshd/sshd_config
Port 2573
/etc/init.d/sshd restart

muumuu-domain.com

仮に、 hogefuga.info を使うものとする

  • 必要そうなライブラリを入れる
yum groupinstall -y "Development Tools"
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
  • nginxインストール
cd /usr/local/src
# 2015/12/13  0:09時点の最新版
curl -O http://nginx.org/download/nginx-1.9.9.tar.gz
tar zxvf nginx-1.9.9.tar.gz
cd nginx-1.9.9
mkdir /var/cache/nginx
# # --with-http_v2_moduleは必須。それ以外はいい感じに
./configure --user=nginx --group=nginx --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --with-http_ssl_module --with-mail --with-http_stub_status_module  --with-http_v2_module --with-http_realip_module  --with-http_addition_module --without-http_userid_module
make
make install

起動できるのチェック

useradd -s /sbin/nologin nginx
passwd nginx
nginx -v
nginx

http://hogefuga.info/ へアクセスし、以下のとおり表示できることを確認 f:id:tapira:20151213001240p:plain

  • 証明書取得 以下のとおりにやれば、無料のStartSSLの証明書が取得できる。 qiita.com

    /etc/nginx/cert に配置するものとする。

  • 証明書の設置

# StartSSLにて取得したkeyとcrtを保存
ll /etc/nginx/cert
hogefuga.info.key
hogefuga.info.crt

wget https://www.startssl.com/certs/sub.class1.server.ca.pem
wget https://www.startssl.com/certs/ca.pem

# nginxは中間CA指定できないので、まとめる
cat sub.class1.server.ca.pem >> hogefuga.info.crt

# 鍵からパスフレーズを外す
openssl rsa -in hogefuga.info.key -out hogefuga.info.key

# nginxユーザで動かしてるのオーナー・権限を設定
chown nginx: /etc/nginx/cert/*
chmod 400 /etc/nginx/cert/*
  • nginx設定 とりあえず最小限
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include /etc/nginx/mime.types.default;
    server {
    server_name  hogefuga.info;
    root /var/www;

    listen  443 ssl http2;
        ssl_prefer_server_ciphers on;
    ssl_ciphers AESGCM:HIGH:!aNULL:!MD5;

    ssl on;
        ssl_certificate      /etc/nginx/cert/hogefuga.info.crt;
        ssl_certificate_key  /etc/nginx/cert/hogefuga.info.key;
    ssl_session_timeout  5m;
        ssl_protocols TLSv1.2;
        location / {
            root   html;
            index  index.html index.htm;
        }
    }
}
  • nginx reload
nginx -s reload
  • http2確認のためchrome extensionを入れる

chrome.google.com

ブラウザでアクセスしいなずまマークがでてればOK!

f:id:tapira:20151213002356p:plain

次はnginx_mrubyをためそう

(追記) やりました

tapira.hatenablog.com