SSTP Connect

SSTP / SoftEther VPN Client for iOS

English Version

iOS と互換性のある SoftEther サーバー証明書の作成について

最高レベルのセキュリティを確保するために、パブリック認証局によって署名された証明書を使用することをお勧めします。Let's Encrypt などの無料サービスからも入手できます。

パブリック CA 証明書が機能しない場合にのみ、自己署名証明書を使用してください。ただし、SoftEther VPN Server によって自動的に作成された証明書は iOS 13 の要件を満たしていないため、このガイドに従って証明書を再作成する必要があります。

TLS サーバー検証はサーバー管理者向けの高度なトピックです。行った変更とその結果については、すべて自己責任になります。

ご理解の上お進みください。

概要

このガイドでは二つの証明書を作成します。まずルート証明書を作成し、それを使用してサーバー証明書(リーフ証明書)を作成します。VPN サーバーに直接使用されるのはサーバー証明書のほうです。

前提条件

VPN サーバー管理マネージャの手順

  1. VPN サーバー管理モードに接続します

  2. 「暗号化と通信関係の設定」を開きます

  3. 「サーバー証明書」の「新規作成」をクリックします

  4. 「ルート証明書」を選択し、証明書情報を入力します

    • 名前:任意(ただし、サーバーホスト名以外のもの)
    • 有効期間:3650 日(デフォルト)または任意の値
    • 暗号強度:2048 bits

    root-ca-ja

  5. 「OK」をクリックします。作成した証明書がサーバー証明書の欄に表示されます。

    root-ca-overview-ja

  6. 「エクスポート」をクリックし、X509 証明書と秘密鍵ファイルをエクスポートします。

    秘密鍵を安全な場所に保存し、他人に絶対渡さないでください。

  7. ここからはサーバー(リーフ)証明書を作成します。「新規作成」をクリックします。

  8. 「他の証明書によって署名された証明書」を選択します

  9. 「証明書と秘密鍵の読み込み」をクリックし、先エクスポートした証明書と秘密鍵を読み込みます

  10. サーバー証明書情報を入力します

    • 名前:サーバーホスト名(例えば SoftEther DDNS ホスト名)
    • 有効期間:730 日(825 日以下の日数であればよい)
    • 暗号強度:2048 bits

    server-cert-ja

  11. 「OK」をクリックし、「新しい証明書の作成」を閉じます

  12. 新しいサーバー証明書がサーバー証明書の欄に表示されます。それをエクスポートする必要はありません。

    server-cert-overview-ja

  13. 「OK」をクリックし、「暗号化と通信関係の設定」を閉じます。VPN 管理マネージャが OpenVPN 接続を行う場合ルート証明書をインストールする必要があるということを提示します。

  14. (任意)エクスポートしたルート証明書(秘密鍵ではない)をサーバーのchain_certsフォルダーにコピーします。OpenVPN 接続が必要としない場合はこれをする必要がありません。

  15. ルート証明書(秘密鍵ではない)を Web サイトにアップロードするか、自分宛てのメールで送信します。そして Apple のガイドに従って、iOS デバイスにルート証明書をインストールして信頼します。

    インストールするには:https://support.apple.com/ja-jp/HT209435

    信頼するには:https://support.apple.com/ja-jp/HT204477

  16. サーバー証明書の有効期限(たとえば 730 日)が切れると、以上のプロセスで新しいサーバー証明書を生成してください。ルート証明書が有効期限が切れていない限り、同じものを再利用できます。

vpncmd の手順

  1. サーバー管理モードにログインします

  2. makecert2048を実行し、ルート証明書情報を入力します

    • 名前 (CN):任意(ただし、サーバーホスト名以外のもの)
    • 有効期限 (日):3650 日(デフォルト)または任意の値

    ルート証明書と秘密鍵のファイルネームを指定します。

    秘密鍵を安全な場所に保存し、他人に絶対渡さないでください。

    例:

    VPN Server>makecert2048
    MakeCert2048 コマンド - 新しい X.509 証明書と秘密鍵の作成 (2048 bit)
    作成する証明書の名前 (CN): debian
    
    作成する証明書の所属機関 (O):
    
    作成する証明書の組織単位 (OU):
    
    作成する証明書の国 (C):
    
    作成する証明書の都道府県 (ST):
    
    作成する証明書のローカル (L):
    
    作成する証明書のシリアル番号 (16 進数):
    
    作成する証明書の有効期限 (日): 3650
    
    作成した証明書を保存するファイル名: /root/debian.cer
    
    作成した秘密鍵を保存するファイル名: /root/debian.key
    
    コマンドは正常に終了しました。
    
  3. makecert2048 /SIGNCERT:<ルート証明書ファイル> /SIGNKEY:<秘密鍵ファイル>を実行し、ルート証明書情報を入力します

    • 名前 (CN):サーバーホスト名(例えば SoftEther DDNS ホスト名)
    • 有効期限 (日):730 日(825 日以下の日数であればよい)

    サーバー証明書と秘密鍵のファイルネームを指定します。

    秘密鍵を安全な場所に保存し、他人に絶対渡さないでください。

    例:

    VPN Server>makecert2048 /signcert:/root/debian.cer /signkey:/root/debian.key
    MakeCert2048 コマンド - 新しい X.509 証明書と秘密鍵の作成 (2048 bit)
    作成する証明書の名前 (CN): vpn123456789.softether.net
    
    作成する証明書の所属機関 (O):
    
    作成する証明書の組織単位 (OU):
    
    作成する証明書の国 (C):
    
    作成する証明書の都道府県 (ST):
    
    作成する証明書のローカル (L):
    
    作成する証明書のシリアル番号 (16 進数):
    
    作成する証明書の有効期限 (日): 730
    
    作成した証明書を保存するファイル名: /root/server.cer
    
    作成した秘密鍵を保存するファイル名: /root/server.key
    
    コマンドは正常に終了しました。
    
  4. servercertsetを実行し、サーバー証明書と秘密鍵のファイルネームを入力します。ルート証明書ファイルを使用しないでください。

    例:

    VPN Server>servercertset
    ServerCertSet コマンド - VPN Server の SSL 証明書と秘密鍵の設定
    読み込む X.509 証明書のファイル名: /root/server.cer
    
    読み込む秘密鍵のファイル名: /root/server.key
    
    コマンドは正常に終了しました。
    
  5. (任意)エクスポートしたルート証明書(秘密鍵ではない)をサーバーのchain_certsフォルダーにコピーします。OpenVPN 接続が必要としない場合はこれをする必要がありません。

  6. ルート証明書(秘密鍵ではない)を Web サイトにアップロードするか、自分宛てのメールで送信します。そして Apple のガイドに従って、iOS デバイスにルート証明書をインストールして信頼します。

    インストールするには:https://support.apple.com/ja-jp/HT209435

    信頼するには:https://support.apple.com/ja-jp/HT204477

  7. サーバー証明書の有効期限(たとえば 730 日)が切れると、以上のプロセスで新しいサーバー証明書を生成してください。ルート証明書が有効期限が切れていない限り、同じものを再利用できます。