ユーザ用ツール

サイト用ツール


ubuntu-server-10-04:self-signed_certificate

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
ubuntu-server-10-04:self-signed_certificate [2010/09/25 15:54] – 作成 adminubuntu-server-10-04:self-signed_certificate [2011/05/21 12:38] (現在) – [証明書と鍵の格納場所] admin
行 1: 行 1:
 ====== 自己署名サーバ証明書の作成 ====== ====== 自己署名サーバ証明書の作成 ======
 +
 +
 +===== サーバの鍵を作成 =====
 +
 +きちんと信用されるCAに署名してもらうにしても、自己署名するにしても、とりあえずは署名してもらう鍵をつくらなければ。
 +
 +鍵長が1024では安全ではないといわれる昨今なので、ゴッツく4096で。
 +
 +  $ sudo openssl genrsa -des3 -out server.key 4096
 +
 +パスワードを聞かれるので2回同じものを入力。
 +
 +今作った鍵はパスワードで暗号化された鍵。サーバデーモンで使用する場合、毎回パスワードを入力して使用していては利便性に問題があるので、パスワードを解除した鍵を作成。
 +
 +  $ sudo openssl rsa -in server.key -out server.key.insecure
 +
 +わかりやすく名前を変更。
 +
 +  $ sudo mv server.key server.key.secure
 +  $ sudo mv server.key.insecure server.key
 +
 +Certificate Signing Request (CSR) を作成する。
 +
 +  $ sudo openssl req -new -key server.key -out server.csr
 +
 +いろいろ質問されるので答えておく。適当にエンターすると署名できない。'.'を入力するとブランクになる。
 +  * Country Name (2 letter code): 国コード
 +  * State or Province Name: 州名/都道府県名
 +  * Locality Name: 市町村名
 +  * Organization Name: 組織名
 +  * Organizational Unit Name: 組織内ユニット名
 +  * Common Name: アクセスされるホスト名を設定する www.example.com 等
 +  * Email Address: 連絡先のメールアドレス
 +
 +
 +この csr ファイルを自分で作った CA に署名させる。
 +
 +
 +==== 証明書と鍵の格納場所 ====
 +
 +サーバやCAの証明書や鍵は、 /etc/ssl に格納するのが標準らしい。
 +
 +  * /etc/ssl/certs 証明書 (公開情報)
 +    * ディレクトリのパーミッションは 755 root:root
 +    * 内部に格納するファイルのパーミッションも 777 root:root 等
 +
 +  * /etc/ssl/private 秘密鍵 (機密情報)
 +    * ディレクトリのパーミッションは 710 root:ssl-cert
 +    * 内部に格納するファイルのパーミッションも 640 root:ssl-cert 等に設定して慎重に管理
 +
 +===== Certification Authority を作成 =====
 +
 +
 +初めに Certification Authority (CA) を作成。
 +
 +CAが使用するファイルをまとめるディレクトリを作成。
 +
 +  $ sudo mkdir /etc/ssl/CA
 +  $ sudo mkdir /etc/ssl/newcerts
 +
 +CAが使用するファイルを作成。1つ目がCAが発行した証明書につけられる通し番号を記憶するファイル。2つ目は発行された証明書を記録するファイル。
 +
 +  $ sudo sh -c "echo '01' > /etc/ssl/CA/serial"
 +  $ sudo touch /etc/ssl/CA/index.txt
 +
 +必須ではないが、複数回証明書を発行する場合は設定しとくと便利。
 +/etc/ssl/openssl.cnf の [ CA_default ] 内を変更。
 +
 +<code>
 +dir             = /etc/ssl/             # Where everything is kept
 +database        = $dir/CA/index.txt     # database index file.
 +certificate     = $dir/certs/cacert.pem # The CA certificate
 +serial          = $dir/CA/serial        # The current serial number
 +private_key     = $dir/private/cakey.pem# The private key
 +</code>
 +
 +ルート認証局の鍵と証明書を作成する。10年間有効で鍵長は4096bit。
 +
 +  $ sudo openssl req -newkey rsa:4096 -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
 +
 +作成中に国コードなどの質問があるが、なにか入力しておかないと後で署名できなくなる。
 +
 +organizationName はサーバの CSR を作成した時と同じものを入力。
 +
 +作成されたファイルをインストールする。
 +
 +  $ sudo mv cakey.pem /etc/ssl/private/
 +  $ sudo mv cacert.pem /etc/ssl/certs/
 +
 +==== ブラウザインポート用の証明書を作成 ====
 +
 +作成した CA をブラウザ等に信頼できる CA として登録する場合に使用する証明書を作成。
 +
 +  $ sudo openssl x509 -inform pem -in /etc/ssl/certs/cacert.pem -outform der -out ca.der
 +
 +ca.dar をブラウザに読み込ませる。
 +
 +
 +===== 作成したCAで署名 =====
 +
 +server.csr を作成したCAで署名する。10年間有効な署名。
 +
 +  $ sudo openssl ca -in server.csr -config /etc/ssl/openssl.cnf -days 3650
 +
 +署名されたファイルは /etc/ssl/newcerts/01.pem にある。以後署名するたびに番号が増えていく。
 +
 +このファイルを開き、-----BEGIN CERTIFICATE----- から ----END CERTIFICATE----- までをコピーして新しく server.crt ファイルを作成し、ペーストして保存する。(このファイルを使用する場合もある)
 +
 +作成された pem crt をサーバに設定する等して使用する。
 +
 +
  
ubuntu-server-10-04/self-signed_certificate.1285397651.txt.gz · 最終更新: 2010/09/25 15:54 by admin