基本的に鍵作成=>CSR作成=>CRT[証明書]作成の流れ。
1.CA(認証局)を立てる。
独自でCAを立てたい場合は、
CA(認証局)として設定したいマシンで下記を実施する。
1-1. openssl.cnfを編集
1-2.コマンド実行
CA.sh -newcaで下記ファイルが生成される。
※opensslを入れている場合、CA.shは下記のような所にある。
/usr/local/openssl/misc/
/usr/lib/ssl/misc/
/etc/pki/tls/misc/
careq.pem |
CAのCSR |
cacert.pem |
CA証明書 |
serial |
証明書通番 |
index.txt |
証明書のインデックス |
index.txt.attr |
証明書のインデックスの設定ファイル |
privateディレクトリ |
CAの秘密鍵置き場 |
certsディレクトリ |
証明書ディレクトリ |
newcertsディレクトリ |
新規発行した証明書ディレクトリ |
crlディレクトリ |
失効リスト |
2.サーバーの秘密鍵を作成
■opensslコマンドを使う場合
openssl genrsa -des 1024 -out 秘密鍵の名前.key
■CA.shを使う場合
CA.sh -newreqとすると、newreq.pemとnewkey.pemが生成される。
3.サーバの鍵のパスフレーズ削除
■opensslコマンドを使う場合
openssl rsa -in 秘密鍵の名前.key -out 秘密鍵の名前.key
■CA.shを使う場合
手順2でCA.sh -newreq-nodesでいけるかもしれないが、
筆者の環境では鍵が生成されなかった。CA.plならうまくいくのか???
4.作成したサーバの秘密鍵の確認
openssl rsa -in 秘密鍵の名前.key -text
5.サイト証明書発行要求(CSR)の作成
■opensslコマンドを使う場合
openssl req -new -days 日数 -key 秘密鍵の名前.key -out CSRの名前.csr
※本コマンド実行時の主な入力項目は以下の通り。
入力項目ST等はデフォルト値でSome-Stateが入ってしまうが、指定したくない場合は"."(ドット)を入力すると良い。
Country |
国名 |
State or Province Name |
都道府県 |
Locality Name |
市区町村 |
Organization Name |
組織名 |
Organization Unit Name |
部署名 |
Common Name |
実際に接続するURLのFQDN |
Email Address |
指定しないことが多い |
A challenge password |
指定しないことが多い |
An optional company name |
指定しないことが多い |
■CA.shを使う場合
手順2のCA.sh -newreqで作成済
6.作成したCSRファイルの確認
openssl req -in CSRの名前.csr -text
7.サイト証明書(CRT)の作成
<通常の場合>
認証局に依頼する。
<独自認証局を使用する場合>
独自認証局を使用する場合は、1で独自認証局として設定したマシンから
コマンドまたはスクリプトを実行する。
■opensslコマンドを使う場合
openssl ca -in CSRの名前.csr -out CRTの名前.crt
※openssl.cnfファイルで指定された動作を行う。
■CA.shを使う場合
CA.sh -signで下記ファイルが生成される。
newreq.pem |
公開鍵 |
newcert.pem |
公開鍵+CA署名 |
newkey.pem |
公開鍵+秘密鍵 |
<サーバ自身でおれおれ署名する場合>
opensslコマンドで署名する。
openssl x509 -req -days 日数 -in CSRの名前.csr -out CRTの名前.crt -signkey 秘密鍵の名前.key
8.セキュリティ属性の変更
chmod 0600 決めた名前.* (server.key,server.csr,server.crtとすることが多そう)
9.作成した証明書の確認
openssl x509 -in CRTの名前.crt -text
issuer |
発行者署名者名(CRTの時) |
subject |
要求仕様者名(CSRの時) |
10.(多段回認証の場合)中間証明書やクロスルート証明書のインストール
10-1.中間証明書とクロスルート証明書をサーバに導入
適当なディレクトリにリポジトリ等からダウンロードした中間証明書、クロスルート証明書を格納。
update-ca-trust extractで読み込ませる。
10-2.証明書チェーン全てを含む証明書を作成する
cat 作成した証明書 中間証明書 ルート証明書 CSR作成時の秘密鍵 > xxx.pem
11.作成した証明書の反映
11-1.ssl.conf編集による証明書設定
SSLCertificateFileの所に、作成したcrtファイルを指定。
SSLCertificateKeyFileの所に、作成したkeyファイルを指定。
(debian等の場合には/sites-available/を編集し、a2ensiteで有効化)
12-2.apache再起動
その他
- サーバの秘密鍵と証明書類の対応関係を確認する際はこちら
最終更新:2020年03月07日 19:35