ubuntu-server-10-04:self-signed_certificate
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
ubuntu-server-10-04:self-signed_certificate [2010/09/25 15:54] – 作成 admin | ubuntu-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 に格納するのが標準らしい。 | ||
+ | |||
+ | * / | ||
+ | * ディレクトリのパーミッションは 755 root:root | ||
+ | * 内部に格納するファイルのパーミッションも 777 root:root 等 | ||
+ | |||
+ | * / | ||
+ | * ディレクトリのパーミッションは 710 root: | ||
+ | * 内部に格納するファイルのパーミッションも 640 root: | ||
+ | |||
+ | ===== Certification Authority を作成 ===== | ||
+ | |||
+ | |||
+ | 初めに Certification Authority (CA) を作成。 | ||
+ | |||
+ | CAが使用するファイルをまとめるディレクトリを作成。 | ||
+ | |||
+ | $ sudo mkdir /etc/ssl/CA | ||
+ | $ sudo mkdir / | ||
+ | |||
+ | CAが使用するファイルを作成。1つ目がCAが発行した証明書につけられる通し番号を記憶するファイル。2つ目は発行された証明書を記録するファイル。 | ||
+ | |||
+ | $ sudo sh -c "echo ' | ||
+ | $ sudo touch / | ||
+ | |||
+ | 必須ではないが、複数回証明書を発行する場合は設定しとくと便利。 | ||
+ | / | ||
+ | |||
+ | < | ||
+ | dir = / | ||
+ | database | ||
+ | certificate | ||
+ | serial | ||
+ | private_key | ||
+ | </ | ||
+ | |||
+ | ルート認証局の鍵と証明書を作成する。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 / | ||
+ | $ sudo mv cacert.pem / | ||
+ | |||
+ | ==== ブラウザインポート用の証明書を作成 ==== | ||
+ | |||
+ | 作成した CA をブラウザ等に信頼できる CA として登録する場合に使用する証明書を作成。 | ||
+ | |||
+ | $ sudo openssl x509 -inform pem -in / | ||
+ | |||
+ | ca.dar をブラウザに読み込ませる。 | ||
+ | |||
+ | |||
+ | ===== 作成したCAで署名 ===== | ||
+ | |||
+ | server.csr を作成したCAで署名する。10年間有効な署名。 | ||
+ | |||
+ | $ sudo openssl ca -in server.csr -config / | ||
+ | |||
+ | 署名されたファイルは / | ||
+ | |||
+ | このファイルを開き、-----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