web-dev-qa-db-ja.com

strongSwanVPN中間認証局

私は、Windows ActiveDirectoryドメインのLinuxサーバーでstrongSwanVPNをテストしてきました。

EAP認証を使用した単一層PKIを機能させることができましたが、VPNに接続するセットアップに中間認証局を追加しようとすると失敗します。

VPNと両方のCAはDebian9ボックスです。

私はすでにこのテストドメイン全体を削除しており、最初からやり直す準備をしています。私が間違っている可能性があることについて誰かが何か意見を持っているかどうか疑問に思っていました。

CAとサーバーキーのペアを作成するために実行したコマンドは次のとおりです。

ルートCA秘密鍵の作成:

$ ipsec pki --gen --type rsa --size 4096 --outform pem > ca.key.pem
$ chmod 600 ca.key.pem

自己署名証明書を作成します。

$ ipsec pki --self --flag serverAuth --in ca.key.pem \ 
  --type rsa --digest sha256 \
  --dn "C=US, O=IT_Testing, CN=VPN Root CA" --ca > ca.crt.der

中間CA秘密鍵を作成します。

$ ipsec pki --gen --type rsa --size 4096 --outform pem > intca.key.pem

中間CACSRを生成します。

$ ipsec pki --pub --in intca.key.pem --type rsa >  intca.csr

中間CACSRに署名します。

$ ipsec pki --issue --cacert ca.crt.der \ 
  --cakey ca.key.pem --digest sha256 \
  --dn "C=US, O=IT_Testing, CN=INT CA" \
  --san "intca.testdomain.com" --flag serverAuth \ 
  --flag ikeIntermediate --outform pem \
  < intca.csr > intca.crt.pem

VPNサーバーの秘密鍵とCSRを作成します。

$ ipsec pki --gen --type rsa --size 2048 --outform pem > vpn.testdomain.com.key.pem

$ ipsec pki --pub --in vpn.testdomian.com.key.pem --type rsa > vpn.testdomain.com.csr

VPNサーバー証明書に署名します。

$ ipsec pki --issue --cacert intca.crt.pem \ 
  --cakey intca.key.pem --digest sha256 \
  --dn "C=US, O=IT_Testing, CN=vpn.testdomain.com" \
  --san "vpn.testdomain.com" --flag serverAuth --outform pem \
  < vpn.testdomain.com.csr > vpn.testdomain.com.crt.pem

ルートCA証明書を/etc/ipsec.d/cacertsに、VPN証明書を/etc/ipsec.d/certsに、VPNサーバーキーを/etc/ipsec.d/privateにコピーします。

leftcert=/etc/ipsec.d/certs/vpn.testdomain.com.crt.pemという行をipsec.confに追加します。また、ipsec.secretsをVPNサーバーの秘密鍵にポイントします。

残りの構成は、動作中の単一層pkiと同じです。

1
0B51D14N

中間CA証明書を発行するときは、コマンドラインに--caを追加して、CA basicConstraintを追加し、実際にCA証明書を作成してください。

また、serverAuthフラグとikeIntermediateフラグを追加せず、サーバー証明書に追加するだけです。 ikeIntermediateは中間CA証明書ではなく、IPsec中間システムを参照しており、おそらくもう追加する必要はありません(それは ドラフトで定義 であり、非常に古いバージョンのみだと思いますmacOSのそれが必要でした)。

3
ecdsa