トップページ > コンテンツ > ネットワーク関連メモ > ネットワーク運用編 > サーバー関連 > サーバ証明書の発行

基本的に鍵作成=>CSR作成=>CRT[証明書]作成の流れ。

1.CA(認証局)を立てる。

 独自でCAを立てたい場合は、
 CA(認証局)として設定したいマシンで下記を実施する。

1-1. openssl.cnfを編集

※編集方法は「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