GNU/Linux >> Linux の 問題 >  >> Linux

OpenVPN easy-rsa ビルドキーの自動化?

解決策 1:

--バッチを試してください フラグ

./build-key --batch client1

解決策 2:

build-key のソースを見ると 、 pkitool を呼び出していることがわかります . cilent のキーと適切な openvpn 構成ファイルを tarball にまとめて、ユーザーに提供できるラッパーを作成しました。

#!/bin/bash

client=$1

if [ x$client = x ]; then
    echo "Usage: $0 clientname"
    exit 1
fi

if [ ! -e keys/$client.key ]; then
    echo "Generating keys..."
    . vars
    ./pkitool $client
    echo "...keys generated." 
fi

tarball=./keys/$client.tgz

if [ ! -e $tarball ]; then
    echo "Creating tarball..."
    tmpdir=/tmp/client-tar.$$
    mkdir $tmpdir
    cp company.ovpn $tmpdir/company.ovpn
    cp keys/ca.crt $tmpdir 
    cp keys/$client.key $tmpdir/client.key
    cp keys/$client.crt $tmpdir/client.crt
    tar -C $tmpdir -czvf $tarball .
    rm -rf $tmpdir
    echo "...tarball created" 
else
    echo "Nothing to do, so nothing done. (keys/$client.tgz already exists)" 
fi

解決策 3:

EasyRSA の新しいバージョンは現在、単一のバイナリとして提供されています。クライアントキーの構築を自動化するために、「vars」ファイルを使用できるようになりました (easyrsa バイナリと同じディレクトリに配置するだけです):

if [ -z "$EASYRSA_CALLER" ]; then
    echo "You appear to be sourcing an Easy-RSA 'vars' file." >&2
    echo "This is no longer necessary and is disallowed. See the section called" >&2
    echo "'How to use this file' near the top comments for more details." >&2
    return 1
fi

set_var EASYRSA        "$PWD"
set_var EASYRSA_OPENSSL        "openssl"
set_var EASYRSA_PKI            "$EASYRSA/pki"
set_var EASYRSA_DN     "org"

set_var EASYRSA_REQ_COUNTRY    "Country"
set_var EASYRSA_REQ_PROVINCE   "Province"
set_var EASYRSA_REQ_CITY       "City"
set_var EASYRSA_REQ_ORG        "Org Ltd"
set_var EASYRSA_REQ_EMAIL      "[email protected]"
set_var EASYRSA_REQ_OU         "Infrastructure"

set_var EASYRSA_KEY_SIZE       2048

set_var EASYRSA_ALGO           rsa

set_var EASYRSA_CA_EXPIRE      3650
set_var EASYRSA_CERT_EXPIRE    365
set_var EASYRSA_CRL_DAYS       180

set_var EASYRSA_TEMP_FILE      "$EASYRSA_PKI/extensions.temp"

EasyRSA のバイナリを使用します:

./easyrsa build-client-full client1 nopass

解決策 4:

一番早く思いつくのは expect です;この種のコマンド ライン操作を自動化できます。

解決策 5:

私も同じ問題を抱えていました。

私が見つけた解決策は次のとおりです:

echo -en "\n\n\n\n\n\n\n\ny\ny\n" | ./build-key client1


Linux
  1. CentOS /RHEL8にOpenVPNをインストールする方法

  2. Amazon Aws(amazon Ami)Openvpnをインストールしますか?

  3. エコーコマンドでフォントを変更しますか?

  1. Ubuntu20.04にOpenVPNサーバーをインストールして構成する方法

  2. Linux での echo コマンドの例

  3. エコー:コマンドが見つかりません

  1. 引用の中のワイルドカード?

  2. $ {!foo}そしてZsh?

  3. kworker スレッドの起源