はじめに
自分用に、自己証明書を発行するコマンドについてまとめました。
自己証明書を発行する仕組みについては以下ブログをご覧いただけると幸いです。
記事目安...5分
自己証明書を発行するコマンド集
前提条件
それぞれ以下と仮定します。
Key | Value |
---|---|
ホストネーム | hogehoge.com, hogehoge2.com |
IPアドレス | 10.2.2.xxx |
ファイルの置き場 | /home/hogehoge/self |
※hogehogeの部分 は自身のユーザ名に置き換えてください。
- openssl コマンドが入っている確認します
$ which openssl
- フォルダを作成して、移動します。
以後このフォルダ内で作業を行います。
$ mkdir /home/hogehoge/self/ $ cd /home/hogehoge/self/
秘密鍵ファイルの作成
秘密鍵ファイル( server.key )を作成 します
$ openssl genrsa -out server.key 2048 $ less server.key //確認用
署名要求ファイルの作成
作成した秘密鍵ファイル( server.key )から 署名要求ファイル( server.csr )を作成 します
$ openssl req -new -key server.key \ -out server.csr
対話型モードになるので、各項目にはそれぞれ適切な値を入れてください。
※ "Common Name" には、名前解決出来るサーバのホスト名か IP アドレスを入れてください。
ここが一致しないと、正しいサーバとして認証されません。
Country Name (2 letter code) [XX]:JP State or Province Name (full name) []:Tokyo Locality Name (eg, city) [Default City]:Shinjuku Organization Name (eg, company) [Default Company Ltd]:TestCompany Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:hogehoge.com Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
作成した署名要求ファイル( server.csr )の中身を確認します。
$ openssl req -text -in server.csr -noout
(Conditional)SAN 設定用テキストファイルの作成
サーバ証明書の Common Name に 複数のサーバホスト名, IP アドレスを入力したい場合 のみ、 SAN 設定用テキストファイル( subjectnames.txt ) を作成してください。
$ vi subjectnames.txt
subjectAltName = DNS: hogehoge2.com, IP: 10.2.2.xxx
自己証明書の作成
秘密鍵ファイル( server.key ) で、署名要求ファイル( server.csr )に電子署名を行い、 自己証明書( server.crt )を作成 します。
※今回は、3650 日(=10年間) を有効期限として作成します。
$ openssl x509 -req -days 3650 -in server.csr \ -signkey server.key \ -out server.crt // SAN 設定用テキストファイル( *subjectnames.txt* ) を作成している場合はこちら $ openssl x509 -req -days 3650 -in server.csr \ -signkey server.key \ -out server.crt \ -extfile subjectnames.txt
中身を確認します。
$ openssl x509 -text -in server.crt -noout
おわりに
ご覧いただきありがとうございました。
菅谷 歩 (記事一覧)