용 헤드리스 브라우저 설정에 대한 인증서 생성 Microsoft Windows

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기5분
  • TLS/SSL 인증서를 생성하여 Docker REST API를 보호하고 HTTP 요청을 인증합니다.

    시작하기 전에

    필요한 역할: 인스턴스에서는 ServiceNow admin, 호스트 머신에서는 로컬 관리자.
    경고:
    호스트로 지원하는 유일한 버전은 Microsoft WindowsServiceNow Windows Server 2019 v10.0.17763.737입니다. 다른 버전은 지원되지 않습니다. 이러한 요구 사항을 충족할 수 없는 경우 호스트를 사용하는 Linux 것이 좋습니다.
    다음 요구 사항에 유의하십시오.
    • 양방향 통신
      경고:
      신뢰할 수 있는 인증 기관에서 인증 기관 키를 가져와야 합니다.
      • 인스턴스 URL과 서버 간에 양방향 통신이 있어야 합니다.
      • 서버의 IP 주소를 찾고 호스트 이름을 가져옵니다. 둘 중 하나 또는 둘 다를 사용할 수 있지만 하나 이상이 필요합니다.
        주:
        호스트 이름이 없고 IP 주소를 통해 연결하는 경우 IP 주소를 입력하고 호스트 이름 환경 변수에 "localhost"를 입력할 수 있습니다.
      팁:
      이를 더 쉽게 기억하려면 다음 환경 변수를 설정합니다.
      • export PASSWORD="<인증서를 생성하는 데 사용할 암호>"
      • export SERVERIP="<이 서버의 IP 주소>"
      • export HOSTNAME="<이 서버의 호스트 이름>"
    • 포트: 이 절차에는 포트 2376 또는 사용자 고유의 기본 포트를 사용합니다.
      주:
      방화벽 규칙이 이 포트에서 인바운드 요청을 허용하는지 확인하십시오.
    • 자세한 내용은 TLS(HTTPS)를 사용하여 Docker 디먼 소켓 보호를 참조하세요.

    이 태스크 정보

    기본적으로 Docker API를 노출할 때 요청은 인증되지 않으므로 호스트 머신이 공격에 취약해질 수 있습니다. 그러나 Docker API는 HTTPS 암호화에서 제공되는 공개 프라이빗 키에 대해 요청을 확인하는 TLS 인증을 지원합니다. 이 단계에서는 서버와 클라이언트에 대한 키를 만듭니다.

    프로시저

    1. 명령줄을 엽니다.
    2. 자체 서명된 인증 기관 키를 생성하거나 신뢰할 수 있는 인증 기관에서 키 쌍을 검색합니다.
      다음 명령은 예제입니다. 구성은 다를 수 있습니다.
      openssl genrsa -aes256 -passout pass:%PASSWORD% -out ca-key.pem 4096
      openssl req -passin pass:%PASSWORD% -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem 
    3. 인증 기관 키를 사용하여 서버 키 쌍을 생성합니다.
      다음 명령은 예제입니다. 구성은 다를 수 있습니다.
      openssl genrsa -out server-key.pem 4096
      openssl req -subj /CN=%HOSTNAME% -new -key server-key.pem -out server.csr
      echo extendedKeyUsage = clientAuth > extfile.cnf
      openssl x509 -passin pass:%PASSWORD% -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf
    4. 인증 기관 키를 사용하여 클라이언트 키 쌍을 만듭니다.
      다음 명령은 예제입니다. 구성은 다를 수 있습니다.
      openssl genrsa -out client-key.pem 4096
      openssl req -subj /CN=%HOSTNAME% -new -key client-key.pem -out client.csr
      echo subjectAltName = DNS:%HOSTNAME%,IP:%SERVERIP%,IP:127.0.0.1 > extfile.cnf
      openssl x509 -passin pass:%PASSWORD% -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile extfile.cnf
    5. CA 공개 키 및 클라이언트 키 쌍을 Java 키 저장소로 임포트합니다.
      이 지침은 예제입니다 구성은 다를 수 있습니다.

      키 저장소 파일을 만들고 암호를 만듭니다(나중에 사용할 수 있도록 저장): keytool -genkey -keyalg RSA -alias dse -keystore my.keystore

      키 저장소 파일에서 기본 항목 삭제: keytool -delete -alias dse -keystore my.keystore

      주:
      이 항목은 자동으로 작성되므로 s.o가 필요하지 않습니다.

      CA 공개 키를 키 스토어로 임포트합니다. keytool -import -keystore my.keystore -trustcacerts -alias ca -file ca.pem

      클라이언트 키 쌍을 가져옵니다.
      주:
      새 pkcs12 키 저장소 파일을 만들고 키 쌍을 가져옵니다. 그런 다음 내용을 원래 키 저장소 파일에 복사하십시오.
      • openssl pkcs12 -export -name clientkeypair -in client-cert.pem -inkey client-key.pem -out clientkeypair.p12
      • keytool -importkeystore -destkeystore my.keystore -srckeystore clientkeypair.p12 -srcstoretype pkcs12 -alias clientkeypair

      이제 모든 인증서를 키 저장소 파일에 추가했으므로 인스턴스에 업로드 ServiceNow 될 수 있도록 my.keystore 파일을 저장합니다. 또한 키 저장소 파일을 작성하라는 메시지가 표시될 때 입력한 암호를 기억해야 합니다. 인스턴스의 ServiceNow 양식에 이 내용을 입력해야 합니다.