by @sharkattack51

March 20, 2015

CentOSでSSLサーバー(OTAインストール用)を立てたいレシピ

VirtualBoxに新規VM作成

  • Vagrantが楽
  • じゃなければ
    • CentOS 64bit
    • 基本デフォルト設定でおk
    • インストールドライブにインストーラーイメージを設定する
    • 内部ネットワーク設定
      • 割り当て : ブリッジアダプター

サーバー設定

  • ネットワーク設定

    $ emacs /etc/sysconfig/network-scripts/ifcfg-eth0
    
    ONBOOT=yes
    NM_CONTROLLED=no
        
    $ service network restart
    
  • openssh インストール

    $ yum install openssh openssh-server openssh-clients
    $ service sshd start
    

    以降はSSHにて作業

  • nginx インストール

    $ rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
    $ yum install nginx
    $ service nginx start
    
  • php-fpm インストール

    $ yum install php-fpm
    $ emacs /etc/php-fpm.d/www.conf
    
    user = nginx
    group = nginx
        
    $ service php-fpm start
    
  • Boot設定

    $ chkconfig iptables off
    $ chkconfig nginx on
    $ chkconfig php-fpm on
    

サーバー証明書作成

$ cd ~
$ openssl genrsa 2048 > cert.key
$ openssl req -new -x509 -days 3650 -key cert.key -out cert.crt -subj '/CN=XXXXXXXX'
  • iPhone構成ユーティリティから.mobileconfigの生成
    • 構成プロファイル > 新規作成 > 資格情報にcrtの登録 > 書き出し
      • cert.crtをインポート
      • プロファイル表示名を設定する
      • cert.mobileconfigを書き出し

nginx設定を変更

  • https設定として証明書を指定、phpの動作を有効化する。

    $ cd /etc/nginx/conf.d
    $ mv default.conf default.conf.bak
    $ emacs example_ssl.conf
    
    server {
        listen        80;
        listen        443 ssl;
        server_name   XXXXXXXX;
    
        ssl_certificate       /XXX/cert.crt;
        ssl_certificate_key   /XXX/cert.key;
    
        ssl_session_cache     shared:SSL:1m;
        ssl_session_timeout   5m;
    
        ssl_ciphers                 HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers   on;
    
        location / {
            root    /usr/share/nginx/html;
            index   index.html index.htm index.php;
        }
    
        location ~ \.php$ {
            root           /usr/share/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
    
  • 設定ファイルのテスト

    $ service nginx configtest
    
  • 設定ファイルの更新反映

    $ service nginx reload