Amazon Linux AMIにRedmine2.6 + Nginx 1.6 (Unicorn) + SSL自己証明書 + MySQL 5.5を構築する – 前篇

    制作部の里山です。
    弊社もクラウドの波に乗るべく、
    案件で使っているRedmineをAWSに乗っけようとしているのですが、
    取り敢えずサーバーを立てるところまで完了しました。

    【前提環境】
    Amazon Linux AMI
    Nginx 1.6
    MySQL 5.5
    httpを強制https化
    という部分の環境構築まで完了したので、
    メモを兼ねてブログに乗っけようと思います。

    以下、AWSから適当なスペックのEC2インスタンスを立ち上げ終わっているものとして記載。

    【お約束】

    # yum update

    【RedmineJPの案内に従い色々インストール】

    # yum -y groupinstall "Development Tools"
    # yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel
    # yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts

    【Ruby関係】
    ※任意のディレクトリに移動しておく※
    ■Rubyのインストール

    # curl -O http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz
    # tar xvf ruby-2.1.5.tar.gz
    # cd ruby-2.1.5
    # ./configure --disable-install-doc
    # make
    # make install

    【MySQLの設定】

    ■MySQLのインストールと実行&初期起動の設定

    # yum install mysql-server
    # sudo service mysqld start
    # chkconfig mysqld on

    ■MySQLのキャラセット調整と初期設定コマンド実行

    # vi /etc/my.cnf
    -----------------------------
    [mysqld]
    character-set-server=utf8
    [mysql]
    default-character-set=utf8
    
    # mysql_secure_installation
    -----------------------------

    【nginxの設定&自己証明書の作成と設定】

    ■nginxのインストールと実行&初期起動の設定

    # yum install nginx
    # sudo service nginx start
    # chkconfig nginx on

    ■自己証明書の発行
    ※任意のディレクトリに移動しておく※

    # openssl genrsa -des3 -out server.key 2048
    # openssl req -new -key server.key -out server.csr
    # cp server.key server.key.org
    # openssl rsa -in server.key.org -out server.key
    # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

    ■nginxののconfig設定(/etc/nginx/nginx.conf)

    # vi nginx.conf
    -----------------------------
    (省略)
    server {
            listen       80;
            server_name  localhost;
            #root         /projects/htdocs;
    
            #add to https redirect
            return 301 https://$host$request_uri; ※httpでアクセスされたらhttpsへのリダイレクト
    (省略)
    
        server {
            listen       443;
            server_name  localhost;
            root         /projects/htdocs; ※ログの出力先を設定
    
            ssl                  on;
            ssl_certificate      /etc/nginx/cert/server.crt; ※SSL証明書のパスを設定
            ssl_certificate_key  /etc/nginx/cert/server.key; ※SSL証明書のパスを設定
    
            ssl_session_timeout  5m;
    
            ssl_protocols  SSLv2 SSLv3 TLSv1;
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers   on;
    
            location / {
            }
        }
    (省略)
    -----------------------------

    という感じに設定しておき、適当なファイルをドキュメントルートに配置しておけば、
    httpでもhttpsでも、強制的にhttpsでアクセスできるようになります。
    次回はRedmineのインストールとかUnicornの設定など。

    では。