PLCnext ControlでOPC UA用カスタムセキュリティ証明書を設定
これは2018年11月に最初に公開された記事の更新版です。
すべてのPLCnext Controlには組み込みOPC UAサーバーが含まれています。このサーバーは、すべてのOPC UAサーバーと同様に、公開鍵暗号を使用してクライアントとの安全な接続を確立するオプションを備えています。このガイドでは、独自のセキュリティ証明書(独自の秘密鍵を含む)を使用して、PLCnext Controlとの安全なOPC UA接続を設定する方法を説明します。
OPC UAサーバー証明書の管理方法については、以下を参照してください:
- PLCnext Engineerの統合ヘルプシステムのOPC UA設定セクション
- PLCnext Info Center:
- 組み込みOPC UAサーバー(eUA)
- 証明書認証
導入
PLCnext Control組み込みOPC UAサーバーは、OPC UAクライアントとの信頼できる通信を確保するためにX.509証明書を必要とします。使用できる証明書には主に4つのタイプがあります:
オプション1 - 自動生成される自己署名証明書。
- 必要な証明書はPLCによって自動的に作成されます。
- 設定が簡単です。
- テストや安全なLANでの恒久的な使用に適しています。
オプション2 - 手動生成される自己署名証明書。
- オプション1と比較して追加のセキュリティメリットはありませんが、管理者が証明書の管理をより細かく制御できます。
オプション3 - 独自の認証局(CA)によって署名された証明書。
- オプション1および2と比較して追加のセキュリティメリットはありませんが、証明書のより構造化された管理が可能になります。
オプション4 - 信頼できる認証局によって発行された証明書
- SymantecやGeoTrustのような信頼できるサードパーティ認証局から証明書を購入する必要があります。すべてのクライアントが信頼できるCAによって署名された証明書を受け入れるため、パブリックまたはその他の非安全なネットワークにはこのオプションが推奨されます。
前提条件
以下の手順を正常に実行するには、以下が必要です:
- 公開鍵暗号とX.509証明書の基本的な理解
- OPC、特にOPC UAテクノロジーの基本的な理解
このガイドで説明する手順は、以下のハードウェアとソフトウェアを使用して準備されました:
- AXC F 2152コントローラ、ファームウェアバージョン2020.6.1
- PLCnext Engineerバージョン2020.6
- UAExpertバージョン1.5.1
- XCAバージョン2.3.0(データベース作成済み)
参考資料
- 公開鍵暗号
- X.509
- X.509証明書の作成(PDF)
- OPCとは
- OPC Unified Architecture
- 管理者のためのOPC UAセキュリティモデル(PDF)
手順
オプション1 - 自動生成される自己署名証明書
これは、PLCnext Engineerで新しいプロジェクトを作成する際のデフォルトオプションです。
- テクニカルサポートYouTubeチャンネルのビデオに従ってOPC UAサーバーを設定します。
これにより、「OPC UA-self-signed」という名前のIdentity Storeに自己署名証明書が自動的に作成され、PLCのWebベースド管理ページのセキュリティセクションにある証明書認証ウィンドウで確認できます。
UA ExpertからOPC UAサーバーへの接続を確立すると、自己署名証明書の名前「eUAServer@axc-f-2152-1」が表示されます:
証明書が信頼できるCAによって署名されていないため、ユーザーがこの証明書を明示的に信頼する必要があります。
証明書を信頼できると確認した後、UA Expertは「BadCertificateHostNameInvalid」エラーを表示する場合があります。これは、OPC UAサーバーへの接続に使用されたURLが、証明書のIPAddressesまたはDNSnamesフィールドのいずれのエントリとも一致しないためです(上記のUA拡張セクションで確認できます)。これは、PLCnext EngineerのOPC UA設定ウィンドウで対応するエントリを証明書に追加することで修正できます。
UA ExpertはBadCertificateHostNameInvalidエラーを無視してサーバーに接続するオプションを提供しますが、多くの他のOPC UAクライアントはこのエラーに遭遇すると単純に接続を拒否します。
オプション2 - 手動生成される自己署名証明書
- XCAで新しい自己署名証明書を作成します。
- 「ファイル」メニューでデータベースを開く(または作成)。
- 「証明書」タブで「新しい証明書」ボタンをクリック:

- 次のダイアログボックスでは、ソースタブがアクティブになります。署名オプションの「自己署名証明書を作成」がデフォルトでチェックされているはずです:

- 「サブジェクトタブ」に切り替え、フィールドを入力します。例を以下に示します。

- 「新しい鍵を生成」ボタンをクリック。この証明書用の一意の秘密鍵が生成されます。
- 「拡張」タブで、証明書の有効期間を必要な期間に設定し、「X509v3 Subject Alternative Name」フィールドにエントリを追加します。このフィールドは空にできません。これはOPC UA仕様の要件です。オプション1で言及されたIPAddressesとDNSnamesフィールドはこれらのフィールドに対応します。
- .

- OKをクリックして証明書を作成。
- 証明書作成後、メインのXCAウィンドウで証明書を選択し、「エクスポート」をクリック。証明書と暗号化されていない秘密鍵を、「PEM + key (*.pem)」形式でエクスポート:

- PLCnext Engineerで、OPC UAサーバーの「証明書」フィールドを「コントローラによる自己署名」から「コントローラ上のファイル」に変更。
- PLCnext EngineerプロジェクトをPLCにダウンロード。
- PLCのWebベースド管理ページで、セキュリティセクションの証明書認証ウィンドウに移動。OPC UA-configurableという新しいIdentity Storeが作成されています。
- ステップ2で作成したファイルから証明書と鍵を新しいIdentity Storeに読み込み:
- 「設定」ボタンをクリックして証明書/鍵ファイルを選択し、証明書を読み込みます。既存の鍵ペアと新しい証明書が一致しないというエラーが表示されます。
- 「設定」ボタンをクリックして証明書/鍵ファイルを選択し、秘密鍵を読み込みます。エラーが消えます。
- PLCnext Runtimeを再起動し、OPC UAサーバーが新しい証明書を取得するようにします。
これで、この手動作成された自己署名証明書を使用してクライアントをOPC UAサーバーに接続できます。UA Expertで接続すると、カスタム証明書の詳細を確認できます。
オプション3 - 独自の認証局によって署名された証明書
XCAでは、独自の認証局(CA)を作成し、このCAを使用して証明書に署名できます。必要な追加手順は、この記事の冒頭で参照されているドキュメント「X.509証明書の作成」に記載されています。.pemファイルをエクスポートする際、エクスポート形式は「PEM chain (*.pem)」である必要があります。
オプション2と同様に、この証明書はOPC UA-configurable Identity Storeに読み込む必要があります。
オプション4 - 信頼できる認証局によって発行された証明書
この場合、証明書は信頼できる認証局から購入し、署名されます。再び、この証明書はOPC UA-configurable Identity Storeに読み込む必要があります。CAがOPC UAクライアントに知られている場合、OPC UAサーバーへの接続時に警告やエラーは発生しません。
中央サーバーでの証明書管理
PLC上でセキュリティ証明書を手動で読み込む代わりに、OPC UAグローバル検出サーバーからPLCに証明書をプッシュできます。これは、複数のOPC UAサーバーを含むネットワークでセキュリティ証明書を管理する際に役立ちます。
このトピックは別の投稿で扱います。
産業技術
- ArduinoでModbusをマスターする:ステップバイステップガイド
- ISO 9004で製造オペレーションを向上させる:実証済み品質マネジメントガイド
- E3.series 2021で完全な接続テーブルを構築する完全ガイド
- E3.schematic機能で電気設計をマスター:プロジェクトを最適化
- 電気設計プロセスの弱点を見抜く:実践ガイド
- 間接費込みの正確な従業員コスト計算:完全ガイド
- サプライチェーン・セキュリティ・リスクについてパートナーと効果的に対話する
- エッジAIで倉庫・製造業の運用を最適化:AdvantechとNVIDIAの共同ウェビナー
- デジタル作業指示書で競合他社を凌駕する
- PLCnextとAlibaba Cloud Connectorの連携:ステップバイステップガイド
- PLCnextでWake-on-LANを使用してPCをリモート起動