「OpenWRTでIPSec VPN(6)『CAの構築と証明書の作成』」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
この文書では先にCAの設定を行い、X.509証明書を作成します。
以降の作業は基本的にSSHでのCLI作業となります。
*参考情報
この記事を書くにあたって引き続き以下の情報を参考にしています
OpenWRTの公式サイトのDocument:[[『install/configure strongswan for IPhone/IPad』>>http://wiki.openwrt.org/inbox/strongswan.howto]]
StrongSwan公式サイトのDocument: [[『iOS (Apple iPhone, iPad...) and Mac OS X』>>http://wiki.strongswan.org/projects/strongswan/wiki/IOS_%28Apple%29]]
*CA(認証局)の設定
クライアント証明書の発行元となるCAの設定を行います。
といっても、daemonの設定を行うわけではなく、CAの秘密鍵と証明書を作成するだけです。
ファイルをramdisk 上に生成するために /tmp に移動し、作業ディレクトリを作成します。(途中で再起動させるとファイルは消えます)
root@OpenWrt:/# mkdir /tmp/CA
root@OpenWrt:/# cd /tmp/CA
root@OpenWrt:/tmp/CA#
CAの秘密鍵を作成します。(10~30秒程度かかります)
root@OpenWrt:/tmp/CA# ipsec pki --gen --outform pem > caKey.pem
CAの秘密鍵を自己署名してプライベートなルートCA証明書を作成します。
root@OpenWrt:/tmp/CA# ipsec pki --self --in caKey.pem --dn "C=JP, O=MyVPN, CN=home.lan" --ca --outform pem > caCert.pem
これでルートCA証明書『caCert.pem』ができました。
※これは俗に言う「オレオレ証明書」になりますが、作成者本人がその出所を認識して使う分には問題ありません。
*Server証明書(= OpenWRTルータの証明書)の作成
OpenWRTルータ用の秘密鍵を生成します(10~30秒程度かかります)
root@OpenWrt:/tmp/CA# ipsec pki --gen --outform pem > serverKey.pem
以下のコマンドで秘密鍵から公開鍵(証明書)を生成します。
root@OpenWrt:/tmp/CA# ipsec pki --pub --in serverKey.pem > serverCert_not_singed.pem
このままでは電子署名されておらず使用できないので、
この公開鍵をプライベートなルートCA証明書を使って電子署名します。
ここであらかじめ『[[OpenWRTでIPSec VPN(3)『DynamicDNS』]]』で取得しておいたFQDNを使います。
CN=にダイナミックDNSサービスに登録したホスト名+ドメイン名のFQDNを記述します。
root@OpenWrt:/tmp/CA# ipsec pki --issue --in serverCert_not_singed.pem --cacert caCert.pem --cakey caKey.pem
--dn "C=JP, O=My_OpenWRT_Router , CN=gtx.odwtztk.wig.jp" --flag serverAuth --outform pem > serverCert.pem
※wikiの関係で2行に分割してます。1回のコマンドで全て入力して実行してください。
これで『caCert.pem』で署名済みのOpenWRTルータのServer証明書『serverCert.pem』が出来ました。
*Client証明書(=端末用の証明書)の作成
この文書では先にCAの設定を行い、X.509証明書を作成します。
以降の作業は基本的にSSHでのCLI作業となります。
*参考情報
この記事を書くにあたって引き続き以下の情報を参考にしています
OpenWRTの公式サイトのDocument:[[『install/configure strongswan for IPhone/IPad』>>http://wiki.openwrt.org/inbox/strongswan.howto]]
StrongSwan公式サイトのDocument: [[『iOS (Apple iPhone, iPad...) and Mac OS X』>>http://wiki.strongswan.org/projects/strongswan/wiki/IOS_%28Apple%29]]
*CA(認証局)の設定
クライアント証明書の発行元となるCAの設定を行います。
といっても、daemonの設定を行うわけではなく、CAの秘密鍵と証明書を作成するだけです。
ファイルをramdisk 上に生成するために /tmp に移動し、作業ディレクトリを作成します。(途中で再起動させるとファイルは消えます)
root@OpenWrt:/# mkdir /tmp/CA
root@OpenWrt:/# cd /tmp/CA
root@OpenWrt:/tmp/CA#
CAの秘密鍵を作成します。(10~30秒程度かかります)
root@OpenWrt:/tmp/CA# ipsec pki --gen --outform pem > caKey.pem
CAの秘密鍵を自己署名してプライベートなルートCA証明書を作成します。
root@OpenWrt:/tmp/CA# ipsec pki --self --in caKey.pem --dn "C=JP, O=MyVPN, CN=home.lan" --ca --outform pem > caCert.pem
これでルートCA証明書『caCert.pem』ができました。
※これは俗に言う「オレオレ証明書」になりますが、作成者本人がその出所を認識して使う分には問題ありません。
*Server証明書(= OpenWRTルータの証明書)の作成
OpenWRTルータ用の秘密鍵を生成します(10~30秒程度かかります)
root@OpenWrt:/tmp/CA# ipsec pki --gen --outform pem > serverKey.pem
以下のコマンドで秘密鍵から公開鍵(証明書)を生成します。
root@OpenWrt:/tmp/CA# ipsec pki --pub --in serverKey.pem > serverCert_not_singed.tmp
※ここではステップをわかりやすくするために一度ファイル化していますが、
後で削除するので参考サイトのようにリダイレクトさせて処理してもOKです。
このままでは電子署名されていないので使用できないので、
この公開鍵をプライベートなルートCA証明書を使って電子署名します。
root@OpenWrt:/tmp/CA# ipsec pki --issue --in serverCert_not_singed.tmp --cacert caCert.pem --cakey caKey.pem
--dn "C=JP, O=My_OpenWRT_Router , CN=gtx.odwtztk.wig.jp" --flag serverAuth --outform pem > serverCert.pem
※wikiの関係で2行に分割してます。1回のコマンドで全て入力して実行してください。
未署名の公開鍵は二度と使わないので削除しておきます。
root@OpenWrt:/tmp/CA# rm -i /tmp/CA/serverCert_not_singed.tmp
DN(識別名)の部分は各自の環境にあわせて修正してください。
ここではあらかじめ『[[OpenWRTでIPSec VPN(3)『DynamicDNS』]]』で取得しておいたドメイン名、ホスト名を使っています。
CN=にダイナミックDNSサービスに登録したホスト名+ドメイン名(FQDN)を記述します。
|パラメータ名|意味|意味|設定例|備考|
|C|Country|国名|JP|StrongSwanのdefault値はCH、OpenWRTのDocument例ではDEになっています。|
|O|Organization|組織名|My OpenWRT Router|SSL用の証明書では会社名などを記載。実質上証明書の説明書きになるので、認識しやすい名称に。|
|CN|Common Name|コモンネーム|gtx.odwtztk.wig.jp|SSL用の証明書ではURLとなるホスト名。IPSec接続の際にOpenWRTルータのFQDN名。最も重要で間違うと接続できない。|
これで『caCert.pem』で署名済みのOpenWRTルータのServer証明書『serverCert.pem』が出来ました。
*Client証明書(=端末用の証明書)の作成