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 인증서를 필요로 합니다. 사용할 수 있는 인증서에는 네 가지 주요 유형이 있습니다:
옵션 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 통합 아키텍처
- 관리자를 위한 OPC UA 보안 모델 (PDF)
절차
옵션 1 - 자동 생성된 자체 서명 인증서
이것은 PLCnext Engineer에서 새 프로젝트를 생성할 때 기본 옵션입니다.
이렇게 하면 'OPC UA-self-signed'라는 이름의 Identity Store에 자체 서명 인증서가 자동으로 생성되며, 이는 PLC의 웹 기반 관리 페이지, 보안 섹션의 인증서 인증 창에서 볼 수 있습니다.
이제 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 주체 대체 이름' 필드에 항목을 입력하세요. 이 필드는 비어 있을 수 없습니다. 이는 OPC UA 사양의 요구 사항입니다. 옵션 1에서 언급한 IPAddresses와 DNSnames 필드는 이 필드에 해당합니다.

- 확인을 클릭하여 인증서를 생성하세요.
- 인증서 생성 후, 메인 XCA 창에서 인증서를 선택하고 '내보내기'를 클릭하세요. 인증서와 암호화되지 않은 개인 키를 'PEM + key (*.pem)' 형식으로 내보냅니다:

- PLCnext Engineer에서 OPC UA 서버 '인증서' 필드를 '컨트롤러가 자체 서명'에서 '컨트롤러의 파일'로 변경합니다.
- PLCnext Engineer 프로젝트를 PLC에 다운로드합니다.
- PLC의 웹 기반 관리 페이지에서 보안 섹션의 인증서 인증 창으로 이동합니다. OPC UA-configurable이라는 새로운 Identity Store가 생성되었습니다.
- 2단계에서 생성한 파일에서 인증서와 키를 새 Identity Store에 로드합니다:
- '설정' 버튼을 클릭하고 인증서/키 파일을 선택하여 인증서를 로드합니다. 기존 키 쌍과 새 인증서가 일치하지 않는다는 오류가 나타납니다.
- '설정' 버튼을 클릭하고 인증서/키 파일을 선택하여 개인 키를 로드합니다. 오류가 사라집니다.
- PLCnext 런타임을 재시작하여 OPC UA 서버가 새 인증서를 가져가게 합니다.
이제 이 수동 생성된 자체 서명 인증서를 사용하여 클라이언트를 OPC UA 서버에 연결할 수 있습니다. UA Expert로 연결할 때 커스텀 인증서의 세부 정보를 볼 수 있습니다.
옵션 3 - 자체 인증 기관(CA)이 서명한 인증서
XCA에서 자체 인증 기관(CA)을 생성한 다음 이 CA를 사용하여 인증서에 서명할 수 있습니다. 추가로 필요한 단계는 이 문서 시작 부분에 참조된 'X.509 인증서 생성' 문서에 설명되어 있습니다. .pem 파일을 내보낼 때 내보내기 형식은 'PEM 체인 (*.pem)'이어야 합니다.
옵션 2와 마찬가지로 이 인증서는 OPC UA-configurable identity store에 로드해야 합니다.
옵션 4 - 신뢰할 수 있는 인증 기관이 발급한 인증서
이 경우 인증서는 신뢰할 수 있는 인증 기관에서 구매하고 서명합니다. 다시 이 인증서는 OPC UA-configurable identity store에 로드해야 합니다. CA가 OPC UA 클라이언트에 알려져 있다면 OPC UA 서버에 연결할 때 경고나 오류가 없어야 합니다.
중앙 서버에서 인증서 관리
PLC에 보안 인증서를 수동으로 로드하는 대신, 인증서를 OPC UA 글로벌 검색 서버에서 PLC로 푸시할 수 있습니다. 이는 여러 OPC UA 서버가 포함된 네트워크에서 보안 인증서를 관리할 때 도움이 됩니다.
이 주제는 다른 게시물에서 다룰 예정입니다.