SSL-VPN 接続を使用することで、インターネット経由で VPC 内のリソースに安全にアクセスできます。例えば、リモートワーク環境において、クライアントから OA システムやファイルサーバーなどのプライベートリソースへ安全にアクセスしたい場合利用できます。このトピックでは、クライアントから Elastic Compute Service (ECS) インスタンスへの接続を例として、SSL-VPN の使用方法を説明します。
このトピックでは、Windows、Linux、Android、macOS を実行しているクライアント向けの設定手順を説明します。iOS デバイスについては、「内蔵 VPN ソフトウェアを使用して iOS デバイスを VPN ゲートウェイに接続する」をご参照ください。
利用シーン
次の図に示すように、クラウドに ECS インスタンスをデプロイしており、ローカルクライアントと ECS インスタンス間にプライベート接続を確立したいとします。これを実現するには、ECS インスタンスが属する VPC に SSL-VPN ゲートウェイをデプロイする必要があります。
作業を開始する前に、ネットワーク CIDR ブロックと IP アドレスを計画します。この例では、次のネットワーク計画を使用します。
VPC:
リージョン:中国 (杭州)
CIDR ブロック:10.0.0.0/16
vSwitch 1:ゾーン J にあり、CIDR ブロックは 10.0.0.0/24
vSwitch 2:ゾーン K にあり、CIDR ブロックは 10.0.1.0/24
ECS:IP アドレスは 10.0.0.1 で、オペレーティングシステムは Alibaba Cloud Linux 3.2104 LTS 64 ビットです。
クライアント CIDR ブロック:192.168.0.0/16。
接続が確立されると、VPN ゲートウェイはこの CIDR ブロックからクライアントの仮想ネットワークインターフェイスに IP アドレスを割り当てます。この CIDR ブロックは、クライアントの既存のローカルネットワークの CIDR ブロックと重複してはなりません。
独自のリソースを計画する場合は、次の条件を満たす必要があります。
VPC が複数のゾーンにまたがる構成で高可用性を確保するには、少なくとも 2 つのゾーンにvSwitch を作成する必要があります。
計画したクライアント CIDR ブロックは、vSwitch の CIDR ブロックやローカルクライアントのルートと重複してはなりません。CIDR ブロックが重複すると、ルート競合が発生する可能性があります。
ステップ 1:SSL-VPN ゲートウェイの設定
まず、クライアントを接続する VPC に SSL-VPN ゲートウェイをデプロイします。
VPN ゲートウェイの作成
VPN Gateway コンソールにログインします。[VPN Gateway] ページで、[VPN Gateway の作成] をクリックします。

[VPN Gateway] 購入ページで、次のパラメーターを設定し、他のパラメーターはデフォルト値のままにして、[今すぐ購入] をクリックして支払いを完了します。
名前:VPN Gateway 1。
リージョン:中国 (杭州)。
ゲートウェイタイプ:Standard。
VPC:クライアントが接続する VPC を選択します。
VSwitch:vSwitch 1。
vSwitch 2:vSwitch 2。
最大帯域幅:10 Mbit/s。
トラフィック:デフォルトでは、VPN Gateway はトラフィック課金です。詳細については、「SSL-VPN の課金」をご参照ください。
IPsec-VPN:Disabled。
SSL-VPN:Enabled。
SSL 接続:5。
有効期間:デフォルトでは、VPN Gateway は時間単位で課金されます。
サービスリンクロール:サービスリンクロールを作成します。(このパラメーターが [作成済み] と表示されている場合、ロールはすでにアカウントに作成されています。)
VPN Gateway コンソールに戻ります。作成した VPN ゲートウェイが表示されます。

約 1〜5 分後、新しい VPN ゲートウェイの状態は 準備中 から 正常 に変わります。正常 状態は、VPN ゲートウェイが初期化され、使用準備が整ったことを示します。
SSL サーバーの作成
SSL サーバーは、クライアントがアクセスできるネットワークとリソースを制御します。
左側メニューで、 を選択します。上部メニューで、China (Hangzhou) リージョンを選択します。SSL サーバー ページで、SSLサーバーの作成 をクリックします。

SSLサーバーの作成 パネルで、次のパラメーターを設定し、他のパラメーターはデフォルト値のままにして、[OK] をクリックします。
名前:SSL Server 1
VPN Gateway:前のステップで作成した VPN Gateway 1 を選択します。
ローカルネットワーク:VPC の CIDR ブロック 10.0.0.0/16 を入力します。
クライアント CIDR ブロック:192.168.0.0/16 を入力します。
説明ローカルネットワーク:クライアントが SSL-VPN 接続を介してアクセスする宛先 CIDR ブロックです。
クライアント CIDR ブロック:クライアントの仮想ネットワークインターフェースに IP アドレスが割り当てられる CIDR ブロックです。この CIDR ブロックは、クライアントの既存のローカルネットワークの CIDR ブロックと重複してはなりません。

SSL クライアントの作成と証明書のダウンロード
SSL クライアントはクライアント証明書を管理します。各クライアントには、クライアント認証とデータ暗号化を提供する一意の証明書が必要です。証明書をダウンロードし、クライアントにインポートする必要があります。
左側メニューで、 を選択します。上部メニューで、リージョンが China (Hangzhou) であることを確認します。SSL クライアント ページで、SSL クライアントの作成 をクリックします。

[SSL クライアントの作成] パネルで、[名前] に
SSL Client 1を入力し、[SSL サーバー] でSSL Server 1を選択してから、[OK] をクリックします。
SSL クライアント ページで、作成した SSL クライアントを見つけ、[操作] 列の [証明書のダウンロード] をクリックします。

ステップ 2:クライアントの設定
クライアントのオペレーティングシステムに対応する設定方法を選択してください。
Windows クライアント
お使いの Windows バージョンに対応する OpenVPN クライアントをダウンロードし、画面の指示に従ってインストールを完了します。
Windows 64 ビットシステム (Intel/AMD):OpenVPN クライアント (Windows 64 ビット)。
Windows ARM64 システム:OpenVPN クライアント (Windows ARM64)。
Web ページが開けない場合は、アカウントマネージャーまたは Alibaba Cloud のサポートエンジニアにお問い合わせください。
ダウンロードした SSL クライアント証明書パッケージを解凍し、すべての抽出されたファイルを OpenVPN の設定ディレクトリにコピーします。
デフォルトパス:
C:\Program Files\OpenVPN\config注:インストールパスを変更した場合は、実際のインストールディレクトリ内の
configフォルダにファイルをコピーしてください。

config.ovpnファイルをテキストエディターで開き、ファイルの末尾にdisable-dcoを追加します。OpenVPN 2.6 で導入された Data Channel Offload (DCO) 機能は、一部の Windows システム (Windows 10/11 の一部バージョンなど) で互換性の問題があります。この設定は DCO を無効にすることで、一部のデバイスでの接続問題を解決します。

デスクトップの右下にあるシステムトレイの OpenVPN アイコンを右クリックし、[接続] をクリックします。

ステータスが Connected になり、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
Android クライアント
Android 用 OpenVPN クライアントをダウンロードしてインストールします。Web ページが開けない場合は、アカウントマネージャーまたは 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 接続を有効にします。

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

ステップ
説明
①
ダウンロードした Tunnelblick インストールパッケージをダブルクリックします。
②
Tunnelblick アイコンをダブルクリックします。
③
[I Have Configuration Files] を選択します。
④
[OK] をクリックします。
VPN 接続を確立するには、まずダウンロードした SSL クライアント証明書パッケージを解凍します。次に、抽出した
config.ovpnファイルを [Configurations] パネルにドラッグします。

ステップ | 説明 |
① | Launchpad の Tunnelblick アイコンをクリックして、Tunnelblick アプリケーションを開きます。 |
② | 抽出した |
③ | [Only Me] を選択します。 |
④ | [Connect] をクリックします。 |
macOS クライアント (CLI)
ターミナルアプリを開きます。クライアントに 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:接続のテスト
テストする前に、ECS インスタンスのセキュリティグループルールで ICMP トラフィックが許可されていることを確認してください。 詳細については、「セキュリティグループルールの表示」および「セキュリティグループルールの追加」をご参照ください。
クライアントで、ECS インスタンスの IP アドレスに ping を実行します。
ping 10.0.0.1
応答があれば、接続は成功です。
よくある質問
その他の質問については、「SSL-VPN 接続に関するよくある質問」をご参照ください。
クライアントからの SSL-VPN 接続の失敗をトラブルシューティングするにはどうすればよいですか?
デバイスのインターネット接続状況を確認します。
インターネット接続に問題がない場合、クライアント証明書の設定に起因する可能性があります。
SSL-VPN 接続を確立した後、ECS インスタンスに ping できないのはなぜですか?
これは通常、ping コマンドで利用される ICMP トラフィックがファイアウォールによってブロックされているためです。最も可能性の高い原因は、ECS インスタンスのセキュリティグループ設定にあります。クライアントの CIDR ブロックからの ICMP トラフィックを許可するインバウンドルールを、セキュリティグループに追加すれば、この問題を解決できます。詳細な手順については、「セキュリティグループルールの照会」および「セキュリティグループルールの追加」をご参照ください。
ping はできるのに、ECS インスタンスの特定のポートにアクセスできない場合はどうすればよいですか?
ECS インスタンスのサービスポートがリッスン状態であることを確認します。次の例は、Linux インスタンスでポート 80 を確認する方法を示しています。

ECS インスタンスの OS ファイルウォールがポートへのトラフィックを許可していることを確認します。次の例は、iptables でポート 80 へのトラフィックを許可する方法を示しています。
iptables -I INPUT -p 80 -j ACCEPTECS インスタンスに関連付けられているセキュリティグループがポートへのトラフィックを許可していることを確認します。詳細については、「セキュリティグループルールの照会」および「セキュリティグループルールの追加」をご参照ください。
クライアントは ECS に ping できるのに、ECS インスタンスがクライアントに ping できないのはなぜですか?
この問題は通常、クライアントの OS ファイルウォールが ping リクエストをブロックしているためです。クライアントのファイアウォール設定でリクエストを許可すれば解決できます。
Linux または macOS のコマンドラインから OpenVPN セッションを切断するにはどうすればよいですか?
コマンドラインを開き、次のコマンドを実行して OpenVPN プロセスを検索し、プロセス ID を記録します。
ps aux | grep openvpn次のコマンドを実行して OpenVPN プロセスを停止します。
kill -9 <process ID>
Apple Silicon (M1) チップを搭載した Mac で SSL-VPN に接続する方法は何ですか?
macOS クライアント (GUI) を使用して VPN 接続を確立します。
Linux でシステムの起動時に OpenVPN が自動的に開始するように設定するにはどうすればよいですか?
/etc/rc.local ファイルを編集してコマンドを追加します。
# /etc/rc.local ファイルを編集モードで開きます。 vim /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
