SSL-VPN を使用した VPC への接続
SSL-VPN は、クライアント (Windows、Linux、Android、または macOS) を VPC のプライベートネットワークに接続し、インターネット経由での安全なアクセスを実現します。
iOS および iPadOS クライアントについては、「SSL-VPN 接続を使用して iPhone または iPad を VPC に接続する」をご参照ください。
ユースケース
目的:SSL-VPN が有効な VPN ゲートウェイを作成し、ローカルクライアントがプライベート IP アドレスを使用して VPC 内の Elastic Compute Service (ECS) インスタンスに安全にアクセスできるようにします。
このシナリオでは、次のリソースを使用します:
-
VPC
-
名前:
vpc-demo -
リージョン: 中国 (杭州)
-
CIDR ブロック: 10.0.0.0/16
-
vSwitch:
vsw1とvsw2という名前の 2 つの vSwitch。-
vsw1はゾーン J にあり、CIDR ブロックは 10.0.0.0/24 です。 -
vsw2はゾーン K にあり、CIDR ブロックは 10.0.1.0/24 です。
-
-
ECS: プライベート IP アドレスが 10.0.0.1 の ECS インスタンスで、
Alibaba Cloud Linux 3.2104 LTS 64 ビットオペレーティングシステムを実行しています。
-
-
クライアントのオンプレミスネットワーク: 172.16.0.0/16
ステップ 1: クラウド VPN リソースの設定
クライアントを VPC に接続する前に、Alibaba Cloud コンソールで VPN ゲートウェイ、SSL サーバー、および SSL クライアントを作成して設定します。
1. VPN ゲートウェイの作成
VPN ゲートウェイは、SSL-VPN 接続におけるクラウド側の出入り口です。
-
VPN ゲートウェイページに移動し、VPN Gateway の作成 をクリックします。
-
VPN ゲートウェイページで、次のパラメーターを設定します:
-
インスタンス名:
vpn-demo -
リージョン: 中国 (杭州)。
-
VPC: クライアントがアクセスする VPC を選択します。
-
vSwitch 1/vSwitch 2: それぞれ
vsw1とvsw2を選択します。VPN ゲートウェイインスタンスは、デュアルアクティブアーキテクチャを使用します。複数のゾーンをサポートするリージョンでゾーンをまたいだ高可用性を確保するには、VPC に異なるゾーンの vSwitch が少なくとも 2 つ必要です。この要件が満たされていない場合は、まず vSwitch を作成してください。
-
最大帯域幅: 10 Mbps
-
IPsec-VPN: 無効 (このオプションは、後述の SSL-VPN を有効にした後にのみ利用可能です。)
-
SSL-VPN: はい。
-
SSL 接続:: 5。
-
サービスにリンクされたロール: サービスリンクロールが存在しない場合は、Create Service-linked Role をクリックします。
パラメーターの詳細については、「VPN ゲートウェイインスタンスの作成と管理」をご参照ください。
-
-
購入完了後、VPN ゲートウェイインスタンスが VPN ゲートウェイページに表示されます。
新しく作成された VPN ゲートウェイインスタンスは 準備中 状態です。約 1〜5 分で状態が 正常 に変わり、インスタンスが使用可能になります。
2. SSL サーバーの作成
SSL サーバーは、クライアントがアクセスできるクラウドネットワークを定義し、クライアントの IP アドレスプールを設定します。
-
SSL サーバー ページに移動します。上部のナビゲーションバーで、[中国 (杭州)] リージョンを選択し、SSLサーバーの作成 をクリックします。
-
SSLサーバーの作成 パネルで、次の設定を行います:
-
名前:
server-demoを入力します。 -
VPN Gateway: 先ほど作成した VPN ゲートウェイインスタンスを選択します。
-
ローカルネットワーク: VPC の CIDR ブロック
10.0.0.0/16を入力します。この CIDR ブロックは、クライアントがアクセスできるクラウドネットワークを定義します。通常は VPC の CIDR ブロックです。
その他のオプションはデフォルト値のままにします。パラメーターの詳細については、「SSL サーバーの作成と管理」をご参照ください。
-
3. SSL クライアントの作成と証明書のダウンロード
SSL クライアントはクライアント証明書を管理します。接続が必要な各クライアントは、認証と暗号化のために証明書をインポートする必要があります。
-
左側のナビゲーションウィンドウで、ネットワーク間接続 > VPN > SSL クライアント を選択します。上部のナビゲーションバーで、China (Hangzhou) リージョンが選択されていることを確認します。SSL クライアント ページで、SSL クライアントの作成 をクリックします。
-
SSL クライアントの作成 パネルで、[名前] に
client-demoを入力し、[SSL サーバー] でserver-demoを選択して、OK をクリックします。 -
SSL クライアント ページで、作成した SSL クライアントを見つけ、操作 列の [証明書のダウンロード] をクリックします。
ステップ 2: クライアントの設定
ご利用のクライアントのオペレーティングシステムに応じた手順に従ってください。
Windows クライアント
-
お使いの Windows のバージョンに対応する OpenVPN クライアントをダウンロードしてインストールします:
-
Windows 64 ビット (Intel/AMD): OpenVPN クライアント (Windows 64 ビット)。
-
Windows ARM64: OpenVPN クライアント (Windows ARM64)。
ダウンロードリンクが開けない場合は、アカウントマネージャーまたは Alibaba Cloud のエンジニアにお問い合わせください。
-
-
ダウンロードした SSL クライアント証明書パッケージを解凍し、すべての展開されたファイルを OpenVPN の設定ディレクトリにコピーします。
-
デフォルトパス:
C:\Program Files\OpenVPN\config -
注意: インストールパスを変更した場合は、インストールディレクトリ内の `config` フォルダにファイルをコピーしてください。

-
-
テキストエディターで
config.ovpnファイルを開き、ファイルの末尾に次の行を追加します:disable-dco。OpenVPN 2.6 で導入されたデータチャネルオフロード (DCO) 機能は、Windows 10 や Windows 11 の特定バージョンなど、一部の Windows システムと互換性がありません。DCO を無効にすることで、これらのデバイスで発生する可能性のある接続問題が解決されます。
client dev tun proto tcp remote 121.41.xxx resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert vsc-bp1xxx.crt key vsc-bp1xxx.key cipher AES-128-CBC ;comp-lzo verb 4 disable-dco -
システムトレイで OpenVPN アイコンを右クリックし、[接続] をクリックします。
-
ステータスが「接続済み」になり、IP アドレスが割り当てられると、接続は成功です。
Linux クライアント
-
次のコマンドを実行して OpenVPN クライアントをインストールし、
confディレクトリを作成します。CentOS
yum install -y openvpn mkdir -p /etc/openvpn/confUbuntu
apt-get update apt-get install -y openvpn mkdir -p /etc/openvpn/conf -
ダウンロードした SSL クライアント証明書パッケージを解凍し、展開されたファイルを /etc/openvpn/conf/ ディレクトリにコピーします。

-
/etc/openvpn/conf/ ディレクトリに移動し、次のコマンドを実行して VPN 接続を確立します。
openvpn --config /etc/openvpn/conf/config.ovpn --daemon -
(オプション) 起動時に OpenVPN プロセスが自動的に開始するように設定します。
-
/etc/rc.local ファイルを編集し、次のコマンドを追加します。
# /etc/rc.local ファイルを編集モードで開きます。 vi /etc/rc.local # i を押して編集モードに入り、次のコマンドを /etc/rc.local ファイルに追加します。 cd /etc/openvpn/conf/ openvpn --config /etc/openvpn/conf/config.ovpn --daemon # Esc を押して編集モードを終了し、次のコマンドを入力してファイルを保存して終了します。 :wq /etc/rc.local ファイルに実行権限を付与します。
chmod +x /etc/rc.local
-
Android クライアント
Android 用 OpenVPN クライアントをダウンロードしてインストールします。ダウンロードリンクが開けない場合は、アカウントマネージャーまたは Alibaba Cloud のエンジニアにお問い合わせください。
この例では、OpenVPN クライアント v3.0.5 がインストールされた Android 9.0 デバイスを使用します。
ダウンロードした SSL クライアント証明書パッケージを Android デバイスに転送し、パッケージを解凍します。
説明お使いの Android デバイスに解凍ユーティリティがない場合は、コンピューターで証明書パッケージを解凍し、展開されたファイルを Android クライアントに転送できます。
次の図に示すように、展開されたすべてのファイルが同じフォルダにあることを確認してください。

OpenVPN クライアントを開き、
config.ovpnファイルをインポートして、VPN 接続を追加します。
番号
説明
①
[OVPN Profile] 接続方法を選択します。
②
ストレージディレクトリで
config.ovpnファイルを見つけます。③
[IMPORT] をクリックして
config.ovpnファイルをインポートします。④
システムは
config.ovpnファイルから情報を自動的に読み取り、VPN ゲートウェイのパブリック IP アドレスを表示します。[ADD] をクリックして VPN 接続を追加します。トグルボタンをタップして VPN 接続を有効にします。

Mac クライアント (GUI、M シリーズチップに推奨)
Tunnelblick リリースページに移動し、バージョン
Tunnelblick 4.0.1 (build 5971)を見つけ、Assets パネルから.dmgファイルをダウンロードします。ダウンロードリンクが開けない場合は、アカウントマネージャーまたは Alibaba Cloud のエンジニアにお問い合わせください。
Tunnelblick ソフトウェアをインストールします。

番号
説明
①
ダウンロードした Tunnelblick インストーラーパッケージをダブルクリックします。
②
Tunnelblick アイコンをダブルクリックします。
③
[設定ファイルがあります] を選択します。
④
[OK] をクリックします。
ダウンロードした SSL クライアント証明書パッケージを解凍します。次に、展開した
config.ovpnファイルを [設定] パネルにドラッグします。

番号 | 説明 |
① | Launchpad から Tunnelblick アイコンをクリックします。 |
② | 展開した |
③ | [自分のみ] を選択します。 |
④ | [接続] をクリックします。 |
macOS (CLI)
-
ターミナルアプリを開きます。Mac に Homebrew がインストールされていない場合は、次のコマンドを実行してインストールします。
説明Homebrew のインストールスクリプトには sudo コマンドが含まれており、管理者パスワードの入力を求められます。「Press RETURN/ENTER to continue...」と表示されたら、Enter キーを押して続行してください。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
次のコマンドを実行して OpenVPN クライアントをインストールします。
brew install openvpn
-
ダウンロードした SSL クライアント証明書を構成ディレクトリにコピーします。
-
/opt/homebrew/etc/openvpn ディレクトリをバックアップします。
cp -r /opt/homebrew/etc/openvpn /opt/homebrew/etc/openvpn_bak -
次のコマンドを実行して、現在の OpenVPN 設定ファイルを削除します。
rm /opt/homebrew/etc/openvpn/* -
次のコマンドを実行して、ダウンロードした SSL クライアント証明書パッケージを構成ディレクトリにコピーします。
cp /path/to/certs.zip /opt/homebrew/etc/openvpn/説明/path/to/certs.zipは、ダウンロードした SSL クライアント証明書パッケージへのパスです。通常は、現在のユーザーのダウンロードディレクトリにあります。例:/Users/example/Downloads/certs.zip。
-
-
次のコマンドを実行して証明書を解凍します。
cd /opt/homebrew/etc/openvpn/ unzip /opt/homebrew/etc/openvpn/certs.zip -
/etc/rc.local ファイルに実行権限を付与します。
chmod +x /etc/rc.local
Android クライアント
-
このトピックでは、OpenVPN クライアント 3.0.5 がインストールされた Android 9.0 クライアントを使用します。
-
ダウンロードした SSL クライアント証明書を Android デバイスに転送し、証明書を解凍します。
説明-
お使いの Android デバイスにファイルを解凍するソフトウェアがない場合は、コンピューターで証明書を解凍してください。その後、解凍したファイルを Android クライアントに転送します。

-
-
OpenVPN クライアントを開き、
config.ovpnファイルをインポートして、VPN 接続を追加します。
番号
説明
①
[OVPN Profile] 接続方法を選択します。
②
ストレージディレクトリで
config.ovpnファイルを見つけます。③
[IMPORT] をクリックして
config.ovpnファイルをインポートします。④
システムは
config.ovpnファイルを読み取り、VPN ゲートウェイのパブリック IP アドレスを表示します。[ADD] をクリックして VPN 接続を追加します。 -
トグルボタンをクリックして VPN 接続を有効にします。

Mac クライアント (GUI、M シリーズチップに推奨)
-
Tunnelblick リリースページに移動し、バージョン
Tunnelblick 4.0.1 (build 5971)を見つけ、Assets パネルから.dmgファイルをダウンロードします。ダウンロードリンクが開けない場合は、アカウントマネージャーまたは Alibaba Cloud のエンジニアにお問い合わせください。
-
Tunnelblick ソフトウェアをインストールします。

No.
説明
①
ダウンロードした Tunnelblick インストールパッケージをダブルクリックします。
②
Tunnelblick アイコンをダブルクリックします。
③
[設定ファイルがあります] を選択します。
④
[OK] をクリックします。
-
ダウンロードした SSL クライアント証明書を解凍します。解凍した
config.ovpnファイルを [設定] パネルにドラッグして VPN 接続を作成します。

|
No. |
説明 |
|
① |
Launchpad で Tunnelblick アイコンをクリックして Tunnelblick ソフトウェアを開きます。 |
|
② |
解凍した |
|
③ |
[自分のみ] を選択します。 |
|
④ |
[接続] をクリックします。 |
Mac クライアント (コマンドライン)
-
ターミナルウィンドウを開きます。Homebrew がインストールされていない場合は、次のコマンドを実行してインストールします。
説明Homebrew のインストールスクリプトには sudo コマンドが含まれています。管理者パスワードの入力を求められます。「Press RETURN/ENTER to continue...」と表示されたら、Enter キーを押して続行してください。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
次のコマンドを実行して OpenVPN クライアントをインストールします。
brew install openvpn
-
ダウンロードした SSL クライアント証明書を構成ディレクトリにコピーします。
-
/opt/homebrew/etc/openvpn ディレクトリをバックアップします。
cp -r /opt/homebrew/etc/openvpn /opt/homebrew/etc/openvpn_bak -
次のコマンドを実行して、現在の OpenVPN 設定ファイルを削除します。
rm /opt/homebrew/etc/openvpn/* -
次のコマンドを実行して、ダウンロードした SSL クライアント証明書を構成ディレクトリにコピーします。
cp /path/to/certs.zip /opt/homebrew/etc/openvpn/説明/path/to/certs.zipは、ダウンロードした SSL クライアント証明書へのパスです。通常は、ユーザーのダウンロードディレクトリにあります。例:/Users/example/Downloads/certs.zip。
-
-
次のコマンドを実行して証明書を解凍します。
cd /opt/homebrew/etc/openvpn/ unzip /opt/homebrew/etc/openvpn/certs.zip -
クライアントの実行方法を選択します。
フォアグラウンドで実行
次のコマンドを実行してクライアントプロセスを開始し、VPN 接続を確立します:
sudo /opt/homebrew/opt/openvpn/sbin/openvpn --config /opt/homebrew/etc/openvpn/config.ovpnこのコマンドを実行すると、フォアグラウンドで実行され続けます。切断するには、Ctrl+C を押してコマンドを停止します。
バックグラウンドで実行
次のコマンドを実行して、VPN クライアントを起動時に自動的に開始するバックグラウンドサービスとして実行します:
cp config.ovpn openvpn.conf sudo brew services start openvpnサービスを停止するには、次のコマンドを実行します:
sudo brew services stop openvpn
ステップ 3: 接続性のテスト
-
セキュリティグループルールの設定
クライアントが VPC 内のリソースにアクセスできるように、ECS インスタンスに関連付けられたセキュリティグループにインバウンドルールを追加し、クライアント CIDR ブロック (
10.200.200.0/24) からのトラフィックを許可します。-
接続性テストの場合:
pingコマンドが正常に機能するように、ICMP プロトコルを許可します。 -
サービスアクセスの場合: TCP 22 (SSH)、TCP 3389 (RDP)、TCP 80/443 (Web サービス) など、サービスで必要な特定のポートを許可します。
-
-
Ping テスト
クライアントで ping コマンドを使用して、ECS インスタンスへの接続性をテストします。正常な応答は、ECS インスタンスへのプライベート接続が確立されていることを示します:
ping 10.0.0.1
-
サービスポートのテスト
サービスへのアクセスを確認するには、ECS インスタンスで実行されているサービスにアクセスします。たとえば、ECS インスタンスに Nginx などの Web サービスをインストールして起動します:
# ECS インスタンスで実行 (Alibaba Cloud Linux 3 の例): yum install -y nginx systemctl start nginx.serviceECS インスタンスに関連付けられたセキュリティグループが、クライアント CIDR ブロックからの TCP ポート 80 でのトラフィックを許可していることを確認した後、クライアントのブラウザで
http://10.0.0.1にアクセスします。Nginx のウェルカムページが表示されれば、サービスにアクセスできています。

よくある質問
ユーザー名とパスワードによる認証
二要素認証を有効にできます。これにより、クライアントは証明書とユーザー名/パスワードの両方を使用して認証し、SSL-VPN 接続を確立する必要があります。
Linux または macOS での VPN 切断
-
OpenVPN プロセスを見つけるには、コマンドラインを開き、次のコマンドを実行します。プロセス ID をメモしてください。
ps aux | grep openvpn -
OpenVPN プロセスを終了するには、次のコマンドを実行します。
kill -9 <プロセス ID>
接続問題のトラブルシューティング
|
症状 |
原因と解決策 |
|
接続が失敗します。たとえば、クライアントログに |
1. ネットワークの問題: クライアントデバイスがインターネットにアクセスできることを確認します。ローカルネットワークのファイアウォールやセキュリティソフトウェアが、OpenVPN クライアントから VPN ゲートウェイのパブリック IP アドレスとポート (デフォルト: TCP/1194) へのアクセスをブロックしていないことを確認します。 2. 証明書の問題: インポートした |
|
接続は成功しましたが、VPC 内の ECS インスタンスに |
1. セキュリティグループルール: これが最も一般的な原因です。ECS コンソールにログインし、ターゲットインスタンスのセキュリティグループを確認します。ソースがご利用の クライアント CIDR ブロック (例: 2. オペレーティングシステムのファイアウォール: ECS インスタンスのオペレーティングシステムのファイアウォール (firewalld や iptables など) が ICMP リクエストをブロックしていないか確認します。 |
|
接続は成功し、 |
1. セキュリティグループルール: ECS インスタンスのセキュリティグループを確認し、必要なサービスポート (例: TCP 80、TCP 22) でクライアント CIDR ブロックからのトラフィックを許可していることを確認します。 2. サービスのリスニング状態: ECS インスタンスにログインし、サービスが正しいポートでリッスンしていることを確認します。たとえば、Linux システムでは 3. オペレーティングシステムのファイアウォール: ECS インスタンスにログインし、オペレーティングシステムのファイアウォールが必要なポートでのトラフィックを許可していることを確認します。 |
|
VPN に接続した後、ローカルネットワーク (プリンターなど) やインターネットにアクセスできなくなります。 |
ルーティングの競合: この問題は、SSL サーバーで設定した クライアント CIDR ブロック がローカルネットワークの CIDR ブロックと競合する場合に発生します。ステップ 1 に戻り、SSL サーバーのクライアント CIDR ブロックを、より一般的に使用されていない範囲 (例: |
|
ECS インスタンスからクライアントへの |
これは想定される動作です。セキュリティ上の理由から、クライアントのオペレーティングシステムのファイアウォールは、通常、VPN エンドポイントを含む外部ソースからの未承諾のインバウンドリクエストをブロックします。これは、クライアントがクラウドリソースにアクセスする能力には影響しません。クラウドリソースからのインバウンド接続を許可するには、クライアントのファイアウォールで必要なトラフィック (ping リクエストの場合は ICMP など) を許可するように設定する必要があります。 |
詳細については、「SSL-VPN 接続に関するよくある質問」をご参照ください。





