CODESYS OPC UA 憑證怎麼設?Security Screen 沒有 Devices 分頁的解法

目錄6 個章節

最近在自己電腦上用 CODESYS 的軟體 PLC 做測試,想幫它的 OPC UA Server 設憑證,讓 SCADA 軟體用加密的方式連進來。

照著印象打開 View → Security Screen,結果只有 User 和 Project 兩個分頁,怎麼點都找不到管 PLC 憑證的地方…

不同版本的 CODESYS,這塊長得不太一樣,我找了一下才搞懂:管 PLC 憑證的 Devices 分頁,要另外裝一個 Add-on 才會出現。

下面照順序記下整個過程:安裝 Add-on、幫 OPC UA Server 產生憑證、讓 SCADA 的憑證被信任,最後是設壞了怎麼還原。

為什麼找不到 Devices 分頁?

因為 Devices 分頁是 CODESYS Security Agent 這個 Add-on 加上去的,預設沒裝。

沒裝的時候,Project 分頁底下雖然看得到 Device,但只能設定 Application 要不要加密,PLC 上有哪些憑證完全看不到。

codesys-opcua-certificate-01.png

CODESYS 官方的 Security Agent 資料表寫得很清楚:裝了它,Security Screen 會多一個 Devices 分頁,可以直接管理 PLC 上的 Own、Trusted、Untrusted、Quarantined 四種憑證。

我的環境

  • 開發環境:CODESYS 64 3.5.18.40
  • PLC:CODESYS Control Win V3 x64(裝在自己電腦上的軟體 PLC,純測試用)
  • Add-on:CODESYS Security Agent 1.5.0.0
  • 連進來的那端:一套 SCADA 軟體,當 OPC UA Client

用 CODESYS Installer 安裝 Security Agent

  1. 在 CODESYS 選單點 Tools → CODESYS Installer。
  2. 切到 Browse 分頁,搜尋框打 Security。
  3. 勾選 CODESYS Security Agent,按右邊的 Install。
  4. 裝完之後,把 CODESYS 整個關掉重開。

codesys-opcua-certificate-02.png

Installer 左下角如果寫著 Read-Only Mode,代表現在沒有權限裝東西,先點旁邊的 Restart as Administrator 用系統管理員身分重開,再按 Install。

重開 CODESYS 之後,Devices 分頁出現了,但裡面空空的。

codesys-opcua-certificate-03.png

別急,這是正常的。

它要讀的是 PLC 上的憑證,所以要先 Online → Login 連上 PLC,再按 Devices 分頁左上角那顆綠色的 Refresh,左邊的樹狀圖才會長出來。

codesys-opcua-certificate-04.png

四個憑證資料夾各是什麼?

Own 放 PLC 自己的憑證,另外三個放”別人”的憑證,差別在你信不信任它。

憑證(Certificate) 是設備的電子身分證。OPC UA 連線時,Server 跟 Client 會互相出示憑證,確認對方是誰,之後才能簽章或加密傳輸。

資料夾放什麼
OwnPLC 自己的憑證,等一下幫 OPC UA Server 建的那張就在這裡
Trusted信任名單,SCADA 的憑證放進來才准連線
Untrusted明確不信任的憑證
Quarantined來連過線、但還沒被你決定要不要信任的憑證,先隔離在這裡

講白一點,就像工廠門口的警衛室。

第一次來的訪客(Quarantined)先在門口等,你點頭了才換上員工證(Trusted),列入黑名單的(Untrusted)就直接擋掉。

另外,點樹狀圖裡的 Use Cases,右邊會列出這台 PLC 上會用到憑證的功能:OPC UA Server、Redundancy、Encrypted Application、Encrypted Communication。

後面標著 (not available),代表這個功能還沒有憑證。

怎麼幫 OPC UA Server 產生憑證?

在 Use Cases 選 OPC UA Server,按 New Certificate,確認金鑰長度和效期就好。

  1. 點左邊樹狀圖最上面的 Device,右邊會顯示可用的 Certificate Use Case。
  2. 選 OPC UA Server 那一列。
  3. 按中間那排圖示最上面的那顆 New Certificate。
  4. 跳出 Certificate Settings 對話框,確認數值後按 OK。

對話框帶出來的是 Key length 3072 bit、Validity period 365 天,我沒改,直接按 OK。

codesys-opcua-certificate-05.png

OK 之後,OPC UA Server 那一列的圖示變了,(not available) 也不見了。

Issued for 跟 Issued by 兩欄都填上 OPCUAServer@ 加上電腦名稱,兩欄一模一樣,因為這是 PLC 自己簽給自己的憑證(也就是自簽憑證)。

codesys-opcua-certificate-06.png

PLC 這邊的身分證辦好了。

怎麼讓 SCADA 的憑證被信任?

讓 SCADA 先連一次,它的憑證會出現在 Quarantined,拖到 Trusted 就好。

  1. 在 SCADA 軟體設定好 OPC UA 連線,實際連一次。這時 PLC 還不認識它,它的憑證會先被丟進隔離區。
  2. 回到 CODESYS,點左邊樹狀圖的 Quarantined,右邊清單會出現一張憑證,Issued for 就是那套 SCADA 軟體。
  3. 把這張憑證拖曳到左邊樹狀圖的 Trusted 上放開。
  4. 點左邊的 Trusted,右邊看得到那張憑證,就代表搬過去了。

codesys-opcua-certificate-07.png

我這張 SCADA 憑證的效期是 2026/09/14 到 2027/09/14,後面的 357 days 是還剩幾天,綠色底代表還在效期內。

codesys-opcua-certificate-08.png

搬進 Trusted 之後,SCADA 那端再連一次就可以了。

設壞了怎麼還原?

把 OPC UA Server 那張憑證刪掉,再重開 runtime,就回到沒有憑證的狀態。

Security Screen
→ Devices
→ Use Cases
→ 選 OPC UA Server 那一列
→ 按 ✕ 刪除憑證
→ 重開 runtime

✕ 在中間那排圖示裡,滑鼠移上去會顯示 Delete the selected certificate from the device.。

codesys-opcua-certificate-09.png

刪完記得重開 runtime,設定才會生效。

我用的是 CODESYS Control Win V3,從工作列右下角的 CODESYS 圖示按 Stop PLC,再按 Start PLC 就好。


目前我只驗過 OPC UA Server 這個 Use Case,Redundancy、Encrypted Application、Encrypted Communication 那三列都還是 (not available),之後有用到再補一篇😆

常見問題

Q:裝完 Security Agent,Devices 分頁為什麼是空的?
A:因為還沒連上 PLC。先 Online → Login,再按 Devices 分頁左上角的 Refresh,樹狀圖和 Use Cases 才會出現。

Q:Quarantined 裡面一直沒有 SCADA 的憑證怎麼辦?
A:SCADA 那端要實際發起一次 OPC UA 連線,憑證才會送到 PLC。安全模式選 None 的話不一定會交換憑證,要選有簽章或加密的模式。連完回 CODESYS 按一次 Refresh 再看。

Q:憑證效期 365 天,到期會怎樣?
A:我這張 2026/09/22 才建,還沒遇到到期。照 OPC UA 的規則,過期的憑證會被視為無效,到期前要重新產生,SCADA 那端也可能要重新信任一次。

Q:刪掉 OPC UA Server 的憑證之後,一定要重開 runtime 嗎?
A:要。刪除只是把憑證從 PLC 上拿掉,重開 runtime 之後設定才會生效。

你們現場的 OPC UA 有開加密,還是都用 None 直接連?