해결 방법 1: 자체 서명된 CA 인증서 기본 제공 펌웨어 사용
1. 내장 CA 인증서 다운로드
펌웨어에는 CA 인증서가 내장되어 있으며 사용자는 웹 페이지에서 인증서를 다운로드한 다음 인증서를 PC 시스템으로 가져올 수 있습니다.
설정 -> 시스템 -> 유지 관리 -> 가져오기/내보내기 구성으로 이동하여 "내보내기"를 클릭하여 CA 인증서를 내보냅니다.

CA 인증서의 이름은 "cacert.crt"입니다.

2. CA 인증서를 PC 시스템으로 가져오기
Windows PC에서 "cacert.crt" 파일을 두 번 클릭하여 설치를 시작합니다.
인증서 유효 기간은 2023년 8월 14일부터 2023년 8월 11일까지 10년임을 알 수 있습니다.
"인증서 설치..."를 클릭합니다. 을 클릭하여 인증서를 가져옵니다.

가져오기 마법사에서 "로컬 컴퓨터"를 선택한 다음 "다음"을 클릭합니다.

"다음 저장소에 모든 인증서 배치"를 선택한 다음 "찾아보기..."를 클릭합니다. "신뢰할 수 있는 루트 인증 기관"을 선택한 다음 확인을 선택하고 "다음" 단계로 이동합니다.

"마침"을 클릭하여 인증서 설치를 완료합니다.

3. 기기 시간 확인
디바이스 시간이 인증서 유효 기간 내에 있는지 확인합니다.
4. 장치 재부팅
장치 IP가 변경된 경우 브라우저에 "보안" 연결이 표시되도록 장치를 재부팅하십시오.

Q1: 장치 IP를 변경한 후 브라우저에 "안전하지 않음" HTTPS 연결이 표시되는 이유
A1: 펌웨어에는 루트 CA 및 루트 CA 개인 키가 있습니다. 기본적으로 장치가 시작될 때마다 루트 CA와 개인 키를 사용하여 현재 장치 IP에 따라 서버 인증서와 서버 개인 키를 생성합니다.
장치 IP를 변경한 후 서버 인증서 IP가 장치와 일치하지 않으면 브라우저는 이를 잘못된 인증서로 간주하므로 연결에 "안전하지 않음"이 표시됩니다.
새 IP에 따라 서버 인증서와 서버 개인 키를 다시 생성할 수 있도록 장치를 재부팅하면 연결이 다시 "보안"으로 표시됩니다.
Q2: 펌웨어 내장 CA 인증서를 PC 시스템으로 가져온 후에도 브라우저에 여전히 "안전하지 않음"이 표시되는 이유는 무엇입니까?
A2: 자체 서버 인증서와 서버 개인 키를 장치에 업로드한 경우 인증서가 장치 내장 CA에 의해 서명되지 않았으므로 확인에 실패하여 연결이 "안전하지 않음"입니다.
인증서를 생성하는 데 사용된 루트 CA를 PC 시스템으로 가져올 수 있으며 연결이 "안전"합니다.
해결 방법 2: 자체 서명된 CA 인증서 사용
1. 자체 서명된 CA 인증서 생성
Linux 가상 머신에 OpenSSL을 설치한 다음 아래 단계의 명령을 사용하여 자체 서명된 CA 인증서를 만듭니다.
1단계: 루트 CA 프라이빗 키 생성
Example command: openssl genrsa -out rootCA.key 2048
("rootCA.key"는 개인 키 이름이며 직접 정의할 수 있습니다)
2단계: 루트 CA 프라이빗 키를 사용하여 루트 CA 요청을 생성합니다.
Example Command: openssl req -new -key rootCA.key -out rootCA.csr -subj "/C=CN/ST=GD/L=SZ/O=SNL/OU=TECH/CN= ipc.security.com"
("rootCA.csr"는 루트 CA 요청 파일 이름, /C=국가 코드, /ST=지방 코드, /L=도시 코드, /O=조직 코드, /OU=부서 코드, /CN=일반 이름, IP 또는 도메인 또는 조직 이름일 수 있음)
3단계: 루트 CA 요청 및 루트 CA 프라이빗 키를 사용하여 루트 CA를 생성합니다.
Example command: openssl x509 -req -days 365 -in rootCA.csr -signkey rootCA.key -out rootCA.crt
(365는 이 CA의 유효성 검사 기간이 365일임을 의미합니다.)

2. 서버 개인 키와 서버 인증서를 생성합니다.
1단계: 서버 프라이빗 키 생성
Example command: OpenSSL GenRSA -out server.key 2048
2단계: 서버 개인 키를 사용하여 서버 인증서 요청을 생성합니다.
Example command: openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=GD/L=SZ/O=SNL/OU=TECH/CN=192.168.1.120" -addext "subjectAltName=IP : 192.168.1.120"
(The server certificate will be uploaded the device side, the subjectAltName should be device IP or domain, or both, for example: "subjectAltName=DNS:ipc.support.com,IP : 192.168.1.120")
3단계: 루트 CA, 루트 CA 개인 키, 서버 인증서 요청을 사용하여 서버 인증서를 생성합니다.
Example command: openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt -days 365 -sha256 -extfile <(echo "subjectAltName=IP : 192.168.1.120")

3. 서버 인증서 및 서버 개인 키를 장치에 업로드합니다.
설정 -> 시스템 -> 보안 -> HTTPS 인증서로 이동하여 서버 인증서와 서버 개인 키를 선택한 다음 "업로드"를 클릭합니다.

4. 자체 서명된 CA 인증서를 PC 시스템으로 가져오기
자체 서명된 CA 인증서를 가져오려면 해결 방법 1의 [CA 인증서를 PC의 시스템으로 가져오기]를 참조하십시오.
5. 장치 IP 변경 및 장치 시간 동기화
디바이스 IP는 인증서 내의 IP 주소와 일치해야 합니다. 그렇지 않은 경우 장치 IP를 변경하십시오.
장치 시간은 서버 인증서 유효 기간 내에 있어야 합니다. 그렇지 않은 경우 장치 시간을 변경하십시오.

해결 방법 3: 공용 CA 인증서 사용
DigiCert, Sectigo, GlobalSign 등과 같은 많은 공용 인증 기관이 있습니다.
이러한 공용 인증 기관은 널리 사용되는 운영 체제 및 브라우저에서 신뢰하므로 루트 CA 인증서를 포함합니다.
서버가 공용 인증 기관에서 서명한 서버 인증서를 사용하는 경우 루트 CA를 시스템으로 수동으로 가져올 필요가 없습니다.
1. 인증서 요청 정보를 입력한 후 "만들기"를 클릭하여 인증서 요청을 생성합니다.
(일반 이름은 디바이스 IP 주소/도메인이어야 함)

2. "내보내기"를 클릭하여 인증서 요청 파일을 다운로드합니다. 파일 이름은 기본적으로 "certreq.pem"입니다.

3. 인증서 요청 파일 "certreq.pem"을 공용 인증 기관으로 보내 서버 인증서를 생성/서명합니다.
참고: 인증 기관이 서버 인증서에 서명할 때 서버 인증서에는 subjectAltName(예: "subjectAltName=DNS:ipc.support.com,IP:192.168.2.120")이 포함되어야 하며 IP/도메인은 디바이스 IP/Domian과 동일해야 합니다.
4. 공용 인증 기관에서 서명한 서버 인증서를 선택하고 "업로드"를 클릭하여 장치에 업로드합니다.

5. 브라우저를 다시 열고 HTTPS를 통해 장치에 액세스하면 연결이 "보안"으로 표시됩니다.


Q3: 인증 기관은 내 CSR(인증서 요청 파일)에 따라 서버 인증서를 제공하는데, 동일한 인증서 파일을 다른 장치에 업로드할 수 있습니까?
A3: 아니요. 서버 인증서는 CSR을 통해 생성되고 CSR은 서버 개인 키를 통해 생성됩니다. 디바이스에서 CSR(certreq.pem)을 생성하면 먼저 개인 키가 생성됩니다. 장치가 다른 개인 키를 만들고 내부에 저장할 때마다 서버 인증서와 장치 개인 키는 쌍입니다.
장치를 복원하면 이전 개인 키가 삭제되고 다음에 장치에서 새 개인 키를 생성하므로 이전 CSR을 통해 생성된 이전 서버 인증서는 더 이상 유효하지 않습니다.
Q4: 인증 기관의 인증서를 다른 장치에 업로드하는 방법은 무엇입니까?
A4: 인증 기관에서 서버 인증서를 신청하고 동일한 인증서를 다른 장치에 업로드하려는 경우 장치를 사용하여 CSR을 생성하지 말고 CSR을 생성하고 개인 키를 직접 저장하거나 인증 기관에 서버 인증서와 서버 개인 키를 모두 생성하도록 요청한 다음 두 파일을 모두 장치에 업로드할 수 있습니다.
Q5: 장치에서 서버 인증서 정보를 확인하는 방법은 무엇입니까?
답변 5 :
1 단계. HTTPS 모드를 활성화한 다음 HTTPS로 장치 웹 페이지에 액세스합니다.

2 단계. 브라우저의 "안전하지 않음" 또는 "보안" 아이콘을 클릭한 다음 "인증서 세부 정보"를 클릭하여 현재 인증서 세부 정보를 확인합니다.


3 단계. 서버 인증서 유효 기간은 "일반"에서 확인할 수 있습니다.

이 서버 인증서에 할당된 서버/장치 IP를 찾을 수 있습니다.
참고: 디바이스 IP 주소는 이 서버 인증서 IP와 일치해야 하며, 그렇지 않으면 브라우저가 이 서버 인증서를 신뢰하지 않고 HTTPS 연결에 "안전하지 않음"이 표시됩니다.
