highlight js

2013年5月15日水曜日

RapidSSLをEC2 nginxに適用した際の手順メモ

何か有っても責任取れないから事故判断でね・・

CSRの作成手順

  1. 作業場所作成
    $ mkdir -p ssl/ssl-{対象common名} _2013  とかで適当に作業ディレクトリ作成。
  2. 作ったディレクトリに移動
  3. 適当にファイル作成
    $ touch {Ymd}
    とかで。
    ※ 後のsha1がディレクトリ内のファイルから擬似乱数ファイルを作成する為。
  4. 擬似乱数ファイルを作成
    1. $ openssl sha1 * > sha1.dat
  5. 作成した擬似乱数ファイルから秘密鍵ファイルを作成
    1. $ openssl genrsa -des3 -out server.key -rand sha1.dat 2048
    2. Enter pass phrase for server.key:  秘密キーを入力
      Verifying - Enter pass phrase for server.key:秘密キーを再入力
  6. CSR の作成
    1. $ openssl req -new -key server.key -out server.csr
    2. Enter pass phrase for server.key: {秘密キー入力}
      You are about to be asked to enter information that will be incorporated
      into your certificate request.
      What you are about to enter is what is called a Distinguished Name or a DN.
      There are quite a few fields but you can leave some blank
      For some fields there will be a default value,
      If you enter '.', the field will be left blank.
      -----
      Country Name (2 letter code) [XX]:{JP}
      State or Province Name (full name) []:{Tokyo}
      Locality Name (eg, city) [Default City]:{Shibuya-ku}
      Organization Name (eg, company) [Default Company Ltd]:{HOGE Co., Ltd.}
      Organizational Unit Name (eg, section) []:{Development}
      Common Name (eg, your name or your server's hostname) []:{対象となるメイン}
      Email Address []:{何もしないでenter}
      Please enter the following 'extra' attributes
      to be sent with your certificate request
      A challenge password []:{何もしないでenter}
      An optional company name []:{何もしないでenter}
    3. CSRが作られる。
  7. CSRをRapidに送って第一部完。

CSRをRapidに送って第一部完。





以下の手順はサーバ証明書発行が完了してから

nginxへの適応(NOT ELB!ELBはこの後調査)
  1. 【通知】 SSL サーバ証明書発行完了のお知らせ
    とメールが届く
  2. SSL関連ファイル置き場所作成
    1. $ mkdir -p /etc/nginx/ssl
  3. nginx virtual.conf編集
    1. 以下を追記
    2. server {
          listen 443 default ssl;
          ssl on;
          # サーバ証明書(サーバ証明書に中間CA証明書を連結したもの)
          ssl_certificate      /etc/nginx/ssl/{ドメイン名}/cert.crt;
          # 秘密鍵
          ssl_certificate_key  /etc/nginx/ssl/{ドメイン名}/server.key;  
      ・・
      ・・
      ・・
      }
  4. ファイル作成 cert.crt
    1. nginxでは、サーバ証明書(crt)と中間証明書をくっつけた形式で使う模様
    2. メールで送られてきたサーバ証明書と、
      クロスルート仕様の中間証明書を1ファイルに纏める
      ※メールで送付された中間証明書は、スマホ対応してないようなのでクロスルートを使う事
    3. base.crt にメールで送られてきたサーバ証明書、
      中間ファイルをchain.crtとして、保存
    4. $ cat base.crt chain.crt > cert.crt
  5. ファイル作成 server.key
    1. CSR作成時に作ったserver.keyを持ってきて配置
  6. nginx restart
  7. https アクセスして確認





おまけ:パスフレーズを削除
スケールアウトさせたりするのに不便なのでー

1. $ cp server.key server.key.bk
2. $ openssl rsa -in server.key.bk -out server.key
3. $ Enter PEM pass phrase:[パスフレーズ入力]
でserver.keyを置き換えてnginx restartして確認。

ELBにSSL証明書仕込む時もパスフレーズ削除しなきゃだしねー



1 件のコメント:

  1. サーバ証明書を入れ替えた後でNginxを再起動したらPEM pass phraseを求められました!!
    server.keyから削除して問題なく再起動できました。
    ありがとうございます(^^)

    返信削除