認証の設定
サーバ、クライアント間の認証に証明書付きの公開鍵を必要とする。
が、とりあえず動かすだけなら自分で作った証明書でもいいらしい
で、ソースに証明書作製スクリプト(openssl呼び出しのラッパー)
がついているので、それを利用。
> cd $(srcdir)/easy-rsa
> . ./vars
> ./clean-all
> ./build-ca
#住所やら何やらを聞かれるので、埋める。
$(srcdir)/keysに
ca.crt
ca.key
が生成される。
サーバーの認証の登録。
> ./build-key-server server
#住所やら何やらを聞かれるので、埋める。
$(srcdir)/keysに
server.crt
server.csr
server.key
が生成される。
クライアント(とりあえず、"client1"とする)の認証の登録
> ./build-key client1
#住所やら何やらを聞かれるので、埋める。
$(srcdir)/keysに
client1.crt
client1.csr
client1.key
が生成される。
(必要なクライアントの数だけくり返す)
Diffie-Hellman鍵交換のパラメータを生成
> ./build-dh
$(srcdir)/keys/dh1024.pem
が生成される。
必要な認証ファイルは以上。
作製した鍵ファイルのうち、
ca.crt
dh1024.pem
server.crt
server.key
をサーバとなるマシンに移動。
ここでは、サーバの
/etc/openvpn(なければ作製)にコピー
注:server.keyを読み書きできるのは所有者のみにすること。
同様に、
ca.crt
client1.csr
client1.key
をclinent1の
/etc/openvpn(なければ作製)にコピー
注:client.keyを読み書きできるのは所有者のみにすること。
#最短の手間で設定するため以上のようにしているが、
#本来は *.csr は、それぞれのマシンで鍵生成した後、認証局に
#公開鍵の認証を求めることで得られるもので、
#*.keyは秘密のままにするべきもの(のはず)。