タイプ: ブール値Type: boolean 構成はこんな感じ。 SSL-VPNの接続時にユーザ名・パスワード + クライアント証明書(Common Nameもチェック)を行います。 証明書の発行はOpenSSLでの作成が面倒なので、Windowsのフリーソフト、k9pcaを使用します。 05/25/2018; この記事の内容. クライアント証明書を作成するには、先ほど作成したCA局において、 証明書を作成する必要があります。 (testuser1) # set subject vpnuser  ←クライアント証明書のCommon Name # number which specifies how deeply to verify the certificate (testuser1) # set ca CA_Cert_1   ←CA証明書を選びます。 クライアント証明書の共通名。The common name of the client certificate. SSLVerifyClient → requireにするとクライアント認証必須 # Client certificate verification type and depth. クライアント証明書にクラスターへの管理者アクセス権があるかどうかを示します。Indicates if the client certificate has admin access to the cluster. Common Name またはシリアル番号による接続可能証明書の限定. ¤¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë¤³¤È¤â²Äǽ¤Ç¤¹)¡£, 10.2.4.2 ¥¯¥é¥¤¥¢¥ó¥È¾ÚÌÀ½ñ¤Î¥¤¥ó¥¹¥È¡¼¥ë.   └EE(End Entity)証明書[クライアント証明書] → CN=202005091000(825日), ※サーバー証明書のCNは、CN=www1.example.comだが、SAN(Subject Alternative Name)がDNS Name=*.example.comなので、www2.example.comにも使用可能。, 今回、使用するクライアント証明書は、上記太字の証明書を発行する想定。 以前のバージョンのドキュメント.   └Apache/2.4.37 (centos), OpenSSLで3階層のCA構築(Root CA + 中間CA + EE証明書) By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. The common name of the client certificate. # none, optional, require and optional_no_ca. Non admin clients can perform only read only operations on the cluster. 参考:Mozilla SSL Configuration Generator, ブラウザ上にキャッシュを残さないようにする。 10.2.4.1 クライアント証明書の作成. └Root CA → CN=RCA(30年) Email Address []: 参照:ルート証明書、中間CA証明書、クライアント証明書のインポート方法(Windows 10). SSLサーバ証明書の「 Common Name 」で指定したFQDN通りに、Webブラウザで指定しているかどうかを確認しましょう。 Common NameにIPアドレスではなく、FQDNを指定しているのに、試験PCから「 https://192.168.10.100 」等と IPアドレスを指定してはダメ です。   └EE(End Entity)証明書[サーバー証明書] → CN=www1.example.com(825日) └VirtualBox 6.0 クライアント証明書にクラスターへの管理者アクセス権があるかどうかを示します。.  └中間CA → CN=SCA01(20年) CSRを生成する際に入力する項目で、 ブラウザでサーバにアクセスする際に入力するURL(FQDNまたはIPアドレス)が該当いたします。 Windows10 今回は、Common Name のみを変更(HOGE1→HOGE2)したクライアント証明書を追加で作成した。 を参考にしたサイト(手順)などを教えてもらえますか?ディレクトリごとにクライアント証明書を発行したいですが、方法が分からなくて困っています。 Why not register and get more from Qiita?  └CentOS Linux release 8.1.1911 (Core) #nsComment = "OpenSSL Generated Certificate", 's hostname) []:202005091000 証明書を使った二要素認証での接続方法をメモ . (peer) # edit testuser1   ←ユーザ名 SSL-VPNの接続時にユーザ名・パスワード + クライアント証明書(Common Nameもチェック)を行います。, 証明書の発行はOpenSSLでの作成が面倒なので、Windowsのフリーソフト、k9pcaを使用します。, 入力例が表示されるので、組織名や一般名称、有効期限を利用状況に合わせて変更します。, ドメインのところは半角のスペースを入れると、FortiClientでの接続時に繋がらなかったです。, 後述するFortigateのPKIユーザで、このCommon Nameが関係してきます。, k9pca Ver2.2 - certificate - 0001フォルダに証明書があります。, 「1000.p12」がクライアント証明書で、SSL-VPNクライアント端末にインポートします。, 「9000.pfx」だけ、Fortigateにインポート時、ファイル名が表示されるようになるので、分かりやすいファイル名に変更しておきます。「SSL-VPN Server Cert.pfx」など。, [ファイル]を選択し、アップロードからCA証明書を選び[OK]を押してインストール。, [証明書]のインポートから[ローカル証明書]を選択してサーバ証明書インストールします。, PKCS12証明書を選択し、先ほどファイル名を変更したサーバ証明書をアップロードし、パスワードを入力します。, [ポリシー&オブジェクト]-[アドレス]でSSL-VPN配布時に利用するIPアドレスを設定します。, 現在1.1.1.1のサーバが実際に運用されてしまっているので、192.0.2.xxxなど例示用のローカルアドレスを使ったほうがよいです。過去「1.1.1.1」問題で各国で大トラブルになりました。, SSL-VPNポータル設定時に、スプリットトンネルを有効にしていると、SSL-VPN用のポリシー作成で、宛先ローカルネットワークをanyが選択できません。, SSL-VPN設定画面で、クライアント証明書を要求が有効になっている場合、[ユーザ定義」でユーザを設定すれば、SSL-VPN接続時に証明書が無いと接続できません。証明書のCommon Nameをチェックしない場合はこれでOK。, この後説明する、PKIユーザでは、サブジェクトに記載した文字列と、クライアント証明書で設定したCommon Nameが同一である必要があります。※どこかに前方一致でチェックと記載があった。, # config user peer  必須: はいRequired: Yes # certificates for client authentication or alternatively one ÉÔÍפǤ¹(¥Ö¥é¥¦¥¶Â¦¤Î¥»¥­¥å¥ê¥Æ¥£ÀßÄê¤Ç¡¢¥Ñ¥¹¥ï¡¼¥É¤ò¾ï¤ËɬÍ×¤È SSLRequire → ST=Tokyo、L=なし、O=CA、OU=なしの場合のみアクセス可能とする。, Apacheを安全な設定にする方法 #SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt. Types are # issuer chain before deciding the certificate is not valid. 以下サイトで構築の前提。 An optional company name []: OpenSSLで3階層のCA構築(Root CA + 中間CA + サーバー証明書)[Cent OS 8], ルート証明書、中間CA証明書、クライアント証明書のインポート方法(Windows 10), you can read useful information later efficiently. クライアント証明書の発行者の拇印。. A challenge password []: 参照:OpenSSLで3階層のCA構築(Root CA + 中間CA + サーバー証明書)[Cent OS 8], クライアント認証なしで、アクセスするのを防止するため、HTTP通信を禁止する。 Next: 10.2.4.2 クライアント証明書のインストール Up: 10.2.4 クライアント証明書 Previous: 10.2.4 クライアント証明書. (testuser1) # end attributes to be sent with your certificate request 非管理クライアントは、クラスターに対して読み取り専用操作のみを実行できます。. タイプ: 文字列Type: string クライアント証明書の発行者の拇印。The issuer thumbprint of the client certificate. # huge file containing all of them (file must be PEM encoded) 「80ポートから来た通信をHTTP通信にリダイレクト」コメント以下6行を追記。, SSLCACertificateFile → RootCA証明書を設定 # Client Authentication (Type): Help us understand the problem. コマンドライン管理ユーティリティマニュアル」 を参照してください) の「MakeCert」コマンドによって、X.509 証明書ファイルと秘密鍵ファイルを作成することもできます。この簡易ユーティリティは、「自己署名証明書」と「署名済み証明書」の両方の作成をサポートしています。, 「固有証明書認証」は、登録する必要があるユーザー数が多数の場合や、すでに企業内で PKI を導入しており、各社員が「スマートカード」(社員証など) に「秘密鍵」を持っているような場合には利用しにくい方法です。そのような場合は、「署名済み証明書認証」を選択することをお勧めします。, 「署名済み証明書認証」は、すでに企業などで各社員に対して企業の CA (証明機関) が、1 つずつ X.509 証明書および秘密鍵ファイルを配布している状況で使用する際に便利な認証方法です。また、現在まだ PKI システムを導入していないが、大量のユーザーを仮想 HUB にアクセスさせたい場合で、証明書認証を使用したい場合にも利用することができます。この方法を利用する場合の必要条件は下記のとおりです。, 「署名済み証明書認証」を使用する場合は、あらかじめ仮想 HUB の「信頼する証明機関の証明書」リストに、各ユーザーの証明書を署名したルート証明書 (または中間証明書) を登録しておきます。, 次に新しいユーザーを作成し、そのユーザーの認証方法を「署名済み証明書認証」に設定します。これにより、そのユーザー名として接続してきたクライアントコンピュータが提示した証明書が、仮想 HUB に登録されている「信頼する証明機関の証明書」リストに登録されている証明書のいずれかによって署名されていることが確認できれば、そのクライアントコンピュータに対するユーザー認証は成功します。, ただし、このような方法だけでは、企業のルート CA が発行した証明書を持つ社員であれば誰でも平等に扱われるため、たとえば一部の証明書を持つ社員については、通信できるプロトコルの種類を増やしたいといったユーザーごとの差別化を行う場合には、次に解説する「Common Name またはシリアル番号による接続可能証明書の限定」という方法を併用します。, X.509 証明書の内容には「Common Name」(CN) および「シリアル番号」が含まれている場合があります。そのような場合は、Common Name およびシリアル番号を限定することによって、たとえその証明書が仮想 HUB の信頼できる証明書によって署名されている場合が確認できた場合でも、Common Name またはシリアル番号の、いずれか 1 項目または両方の項目が完全に一致しない限りアクセスを拒否することができます。, この機能を活用すると、信頼できる証明書によって署名された証明書のうち、特定のシリアル番号または CN 値を持っている場合のみ接続できるユーザーを作成しておくことにより、持っている証明書の種類によってセキュリティポリシーなどの差別化を行うことができます。, RADIUS Settings for Each User and for All Users, NT ドメインコントローラまたは Active Directory コントローラを用いた認証, ユーザーごとの NT ドメイン認証設定と全ユーザーに対する NT ドメイン認証設定, SoftEther VPN で使用することができる証明書は、X.509 形式で PKI アルゴリズムに RSA が使用されており、公開鍵および秘密鍵のビット長が 1,024bit または 2,048bit のものです。また、X.509 証明書のバージョンは、「バージョン 1 以降」のものであれば使用することができますが、一部の拡張フィルードについては非対応 (その内容を無視する) である場合があります。SoftEther VPN の各モジュールすべてで認識することができる「サブジェクト」内の値は、「CN」、「O」、「OU」、「C」、「ST」および「L」の 6 個です。, インターネットなどの公共 IP ネットワークに対して、誰でも接続することが可能な仮想 HUB を提供する場合。, 社内 LAN に設置した VPN サーバーで、特にユーザー認証を必要としない仮想 HUB を作成するような場合。たとえば、その仮想 HUB に接続するとストリーミングが視聴できるといった場合。, ユーザーの数が少数である場合は問題無く運用できますが、ユーザー数が数百を超えると、ユーザー登録 / 削除などの処理に手間がかかるようになります。このような場合は、「Radius 認証」や「NT ドメインおよび Active Directory 認証」を使用してください。, パスワードベースの認証方法は、パスワードを推測されるなどの脆弱性につながることがあります。企業のセキュリティポリシーがパスワードベースの認証方法を推奨しておらず、より高い安全性が要求される場合は、「証明書認証」を使用してください。, 仮想 HUB にアクセスする各ユーザーに対して「X.509 証明書およびそれに対応する秘密鍵」を、ファイルまたはスマートカードの形式で配布している。, それぞれのユーザー用の証明書は、企業内の CA (証明機関) などの持つルート証明書 (または中間証明書) と秘密鍵によって署名されており、木構造状の信頼関係がある。. クライアント証明書の一般名 ClientCertificateCommonName. SSLサーバ証明書のコモンネーム (Common Name、一般名). 非管理クライアントは、クラスターに対して読み取り専用操作のみを実行できます。Non admin clients can perform only read only operations on the cluster. 共通名を使用して、クライアント証明書の詳細を記述します。. (/EE_Client01/EE_Client01_csr.pemを使用し、有効期間825日で発行), クライアント認証するPCにPFXファイル、中間CA証明書、Root CA証明書をインポートする。 クライアント証明書の共通名。. クライアント認証するPCにPFXファイル、中間CA証明書、Root CA証明書をインポートする。 参照:ルート証明書、中間CA証明書、クライアント証明書のインポート方法(Windows 10) アクセスする際、証明書を要求され、クライアント認証が成功する。 ここにチェックが入っていない場合は、自動的に証明書のサブジェクトにあるCN(Common Name)の値がユーザー名として認証に利用される(画面6)。 new entry 'testuser1' added #, [VPN]-[SSL-VPNポータル]からtunnel-accessの設定を行います。, SSL-VPNクライアント端末がVPN接続時、インターネットの通信はVPN網を経由させたくないので、スプリットトンネリングを有効に。, 「クライアント証明書を要求」を有効にし、サーバ証明書には、インポートしたサーバ証明書を選びます。, [ネットワーク]-[スタティックルート]で、SSL-VPNトンネルインターフェース向けにスタティックルートを設定します。, クライアント証明書は「1000.p12」をダブルクリックするとインポートが開始されます。, FortiClientソフトはFortinateのサイトからダウンロードできるのインストールし、画面の様な感じで設定。リモートGWはFortigateのグローバルIPやDDNSを行っているならドメイン名を設定します。, FortigateでSSL-VPN ユーザ認証と証明書の二要素認証 | ぽん太ブログ. 共通名を使用して、クライアント証明書の詳細を記述します。Describes the client certificate details using common name. SoftEther VPN では、新しい VPN セッションが仮想 HUB に接続しようとする際に、厳密に「ユーザー認証」を行うことによって、権限のない第三者が仮想 HUB に勝手に接続してしまうようなセキュリティ侵害を防ぎ、セキュリティを確保しています。, これらのユーザー認証を行うためには、あらかじめ仮想 HUB の管理者が SoftEther VPN Server に対して「ユーザー」を作成し、そのユーザーの認証の種類を「6 種類」の中から選択して、必要な「パラメータ」を指定する必要があります。, なお、使用するユーザー認証の種類は、作成したユーザーごとに指定することができます。たとえば、A さんと B さんは、パスワード認証で VPN 接続できるようにするが、通信内容はセキュリティポリシーやアクセスリストによって制限し、C さんはより厳密な証明書認証でしか VPN 接続できないようにするが、制限は寛大にするなどといったことが簡単にできます。, 「匿名認証」は、最も簡単なユーザー認証の種類です。匿名認証に設定されたユーザーが仮想 HUB に存在する場合、そのユーザー名を知っている利用者であれば、誰でもその仮想 HUB に接続して VPN 通信を行うことができます。, SoftEther VPN において、企業などのネットワークでは匿名認証はあまり役に立たない認証方法です。匿名認証を使用するべき場合としては、下記のようなものがあります。, 「パスワード認証」は、ユーザーを識別して認証を行う場合に最も使いやすい認証方法です。パスワード認証を使用する場合は、そのユーザーの「パスワード」を設定します。, ユーザーは VPN 接続を行う際にパスワードの提示を求められ、パスワードが一致しない場合はアクセスを拒否されます。また、ユーザーは VPN Client を利用して、自分で VPN Server に登録されている自分自身のパスワードをいつでも変更することができます。詳しくは 「4.9 その他の機能」 をお読みください。, パスワード認証を使用するユーザーのパスワードは、SoftEther VPN Server の「コンフィグレーションデータベース」に記録されます。この際、パスワードは「ハッシュ関数」によってハッシュされるため、元のパスワードは一切保存されません。またパスワード認証を行う際に SoftEther VPN プロトコルは「チャレンジアンドレスポンス認証 (ダイジェスト認証)」によってユーザー認証のためのパスワードの確認を行いますので、この際にも元のパスワードはネットワーク上を流れません。, 「Radius 認証」は、パスワード認証と同様にユーザー名とパスワードで認証する方法ですが、認証するにあたってのパスワードは SoftEther VPN Server によって管理されず、既存の Radius プロトコルに対応した認証サーバーによって処理されます。これによって、企業の既存のパスワードデータベースを使用したユーザー認証が可能となり、社員などのユーザーは Radius サーバーでパスワードを変更すると、SoftEther VPN 接続のためのパスワードについてもそれを使用するようになり、パスワードの一元化が可能となります。, 「Radius サーバー」(Radius プロトコルに対応した認証サーバー)は、ソフトウェアベースのものとハードウェアベースのものの 2 種類があり、すでに広く普及しています。したがって、Radius ベースの認証サービスを持つ企業やインターネットサービスプロバイダなどは、ユーザー認証を Radius サーバーによって行わせるようにすることが可能です。, Radius 認証を使用するように設定されているユーザーがユーザー認証を行う場合、そのユーザーが送信した認証データ (SSL によって暗号化されます) は、SoftEther VPN Server から事前に設定されている Radius サーバーに対して送信されます。Radius サーバーでのユーザー認証に成功すると、SoftEther VPN Server はそのユーザーによる接続を許可します。それ以外の場合 (ユーザー認証に失敗した場合や Radius サーバーにアクセスできない場合) は接続を拒否します。, Radius 認証を使用する場合は、事前に Radius サーバー側で SoftEther VPN Server の IP アドレスを登録し、「共有シークレット」と呼ばれるパスワードを決定してから、仮想 HUB の設定を変更します。使用する Radius サーバーは仮想 HUB ごとに設定することができ、仮想 HUB 間のセキュリティ設定は互いに独立しています。仮想 HUB に対して Radius サーバーの設定を行う際に必要な項目は、下記の 3 項目です。, これらの情報は Radius サーバーの管理者から入手することができます。また、使用する Radius サーバーは「Password Authentication Protocol (PAP)」を使用可能なように設定しておく必要があります。, また、Radius サーバーに対して SoftEther VPN Server が通知するサーバー製品名は "SoftEther VPN Server" です。, 仮想 HUB 内のユーザーを Radius サーバーによって認証する場合、下記の 2 種類の方法があります。, 「NT ドメインおよび Active Directory 認証」は、パスワード認証と同様にユーザー名とパスワードで認証する方法ですが、認証するにあたってのパスワードは SoftEther VPN Server によって管理されず、既存の Windows NT 4.0 Server 以降の NT ドメインコントローラまたは Windows Server の Active Directory コントローラによって処理されます。これにより、企業の既存のパスワードデータベースを使用したユーザー認証が可能となり、社員などのユーザーは Windows ドメインでパスワードを変更すると、SoftEther VPN 接続のためのパスワードについてもそれを使用するようになり、パスワードの一元化が可能になります。, Windows Server による Windows ドメインはすでに広く普及しています。したがって、Windows ドメインベースの認証サービスを持つ企業やインターネットサービスプロバイダなどは、ユーザー認証を「NT ドメインコントローラまたは Active Directory コントローラ」によって行わせるようにすることが可能です。, NT ドメインおよび Active Directory 認証を使用するように設定されているユーザーがユーザー認証を行う場合、そのユーザーが送信した認証データ (SSL によって暗号化されます) は、SoftEther VPN Server から NT ドメインコントローラまたは Active Directory コントローラに対して送信されます。NT ドメインコントローラまたは Active Directory コントローラでのユーザー認証に成功すると、SoftEther VPN Server はそのユーザーによる接続を許可します。それ以外の場合 (ユーザー認証に失敗した場合や NT ドメインコントローラまたは Active Directory コントローラにアクセスできない場合) は接続を拒否します。, NT ドメインおよび Active Directory 認証を使用する場合は、SoftEther VPN Server を認証に使用する「Windows ドメイン」に参加させておく必要があります。Windows ドメインに参加している SoftEther VPN Server は、特別な設定をすることなく NT ドメインおよび Active Directory 認証が設定されているユーザーに対して、NT ドメインおよび Active Directory 認証を行うことができます。, 「NT ドメインおよび Active Directory 認証」を行うためには、ユーザー認証を行おうとする SoftEther VPN Server がドメインへの参加が可能な Windows NT 上で動作している必要があります。Windows 98 / Windows 98 Second Edition / Windows Millennium Edition 上、または Linux / FreeBSD / Solaris / Mac OS X 上等で動作する SoftEther VPN Server は、NT ドメインおよび Active Directory 認証を行うことはできず、「NT ドメインおよび Active Directory 認証」に設定されているユーザーに対するユーザー認証は常に失敗します。, 仮想 HUB 内のユーザーを、NT ドメインコントローラまたは Active Directory コントローラによって認証する場合、下記の 2 種類の方法があります。, 「パスワード認証」や「Radius 認証」、「NT ドメインおよび Active Directory 認証」は、VPN クライアント側が接続先の SoftEther VPN Server に対して、正当な権限を持っていることをユーザー名とパスワードによって証明することによってユーザー認証を行います。「パスワード」を用いたユーザー認証方法は、一般的に十分なセキュリティを確保できますが、企業のセキュリティポリシーがパスワードを用いたユーザー認証を推奨しない場合は、より高い安全性を持った「証明書認証」(PKI 認証とも呼ばれます) を用いてユーザー認証を行う必要があります。証明書認証の方式には、「固有証明書認証」と「署名済み証明書認証」の 2 種類があり、ユーザーごとに使い分けることができます。SoftEther VPN Server に対して「クライアント証明書認証モード」で接続しようとする SoftEther VPN Client は、証明書および秘密鍵の格納場所として、クライアントコンピュータのハードディスクまたは外部のスマートカードのいずれかを選択することができます。, 「証明書認証」は、仮想 HUB にコンピュータが接続しようとするとき、接続元のコンピュータが「ユーザー名」と共に「X.509 電子証明書」を提示することにより、SoftEther VPN Server がその証明書が正しいものであるかどうかを検証して、成功した場合のみ接続を許可する方法です。, 接続元コンピュータは、提示する「証明書データ」と共に、その証明書内の公開鍵に対応した「秘密鍵 (RSA 秘密鍵)」を所有している必要があります。「証明書データ」は接続元のコンピュータから VPN Server に送信されますが、秘密鍵データは送信されません。次に、VPN Server がクライアントに対して乱数データ (「チャレンジ値」と呼ばれます) を送信し、それを受け取ったクライアントは乱数データを自己が保有している秘密鍵によって署名し、それを送り返します。VPN Server はクライアントから返送された署名データを、クライアントから最初に受け取った電子証明書内の公開鍵を用いて検証し、確かにクライアントコンピュータが、証明書とそれに対応した秘密鍵を所有していることを確認します (もし確認ができない場合は、直ちにユーザー認証は失敗します)。その後、クライアントが提示した証明書が、ユーザー認証データとしてユーザーごとに定義されている属性に一致しているかどうかを検査します。この際の検査方法には 2 種類あり、「固有証明書認証」または「署名済み証明書認証」を、目的に応じて選択することができます。, また、有効期限が切れた証明書、および仮想 HUB 単位で設定することができる「無効な証明書の一覧」リストに登録された証明書は「無効」として認識され、ユーザー認証に必ず失敗します。, 「固有証明書認証」は、あらかじめ仮想 HUB 側のユーザーデータベース内のユーザーに対して「証明書データ」を登録しておき、ユーザーが提示した証明書が事前に登録された証明書と完全に一致する場合に接続を許可する方法です。, 「固有証明書認証」を使用すると、SoftEther VPN が持つ証明書認証機能を最も簡単に使用することができます。特に証明書認証を利用するユーザーの数が数ユーザー~数十ユーザー程度の場合は、固有証明書認証機能で十分に VPN システムを運用することができます。具体的な運用方法としては、仮想 HUB の管理者がいくつかの X.509 証明書を作成しておき、それを仮想 HUB に順番に登録しつつ、証明書と秘密鍵をユーザーに安全な方法 (社内 LAN 内の電子メール、共有フォルダ、またはスマートカード) で手渡すことによって、証明書と秘密鍵を持ったユーザーはいつでもそれを用いて VPN Server の仮想 HUB に接続することができます。逆に、証明書はユーザーの側で生成しておき、その証明書をユーザーが仮想 HUB の管理者に渡すことによって証明書を登録することもできます (この方法では、秘密鍵はユーザーの手元から外に出ることはないのでより安全です)。, 秘密鍵および X.509 証明書の作成は、既存の様々な PKI に対応したユーティリティ (フリーウェアや市販ソフトウェア) などによって行うことができます。また、「SoftEther VPN サーバー管理マネージャ」の機能の一部である「証明書作成ツール」および「SoftEther VPN コマンドライン管理ユーティリティ」(「6.