WebSphere Liberty에서 HTTPS 사용
하고 싶은 일
자작의 웹 어플리케이션을 Google의 Lighthouse에 걸어 보려고 하면 HTTPS화하는 것이 필수인 것 같았기 때문에, Liberty로 HTTPS를 사용하는 방법을 시도해 보았다.
SAN 필요
자기 서명 증명서를 이용해 HTTPS 통신을 하면 좋기 때문에 어렵지 않다고 생각했지만, 옛날에는 Common Name(CN)가 설정되어 있으면 OK였지만, Chrome 58 이후는 증명서에 Subject Alternative Name(SAN)이 등록되어 있는 것을 요구하기 위해, SAN을 포함한 증명서를 만들 필요가 있다.
시도한 환경
자기 서명 증명서를 이용해 HTTPS 통신을 하면 좋기 때문에 어렵지 않다고 생각했지만, 옛날에는 Common Name(CN)가 설정되어 있으면 OK였지만, Chrome 58 이후는 증명서에 Subject Alternative Name(SAN)이 등록되어 있는 것을 요구하기 위해, SAN을 포함한 증명서를 만들 필요가 있다.
시도한 환경
기본적으로 생성되는 인증서는 어떻게 됩니까?
ssl-1.0 또는 transportSecurity-1.0 기능이 활성화된 WebSphere Liberty를 시작하면 user/servers/(server-name)/resources/security
에 key.p12
라는 파일이 생성됩니다. 이 파일은 PKCS12라는 형식의 파일로 안에 비밀키와 공개키 증명서가 보존되어 있다. 파일에는 암호가 걸리고 server.xml
의 <keyStore>
요소에 암호를 지정합니다.
내용의 확인 방법은 이하와 같다(패스워드는 <keyStore>
로 지정한 것). default라는 별명(alias)으로 증명서가 등록되어 있는 것을 알 수 있다. 암호를 듣지 않으려면 -storepass
를 입력하십시오.
keytool -v -list -storetype pkcs12 -keystore key.p12
SAN이 있는 인증서 작성 절차
비밀키를 입수하고 거기에서 SAN 첨부의 증명서를 만들어 간다. 비밀키는 디폴트로 생성되는 p12 파일로부터 꺼낼 수도 있는 것 같지만(후술), 여기에서는 제로로부터 만들어 보자. iTerm.app이라면 openssl 명령을 실행할 때 암호를 묻는 경우 키보드 입력이 작동하지 않기 때문에 Terminal.app를 사용했습니다.
# 秘密鍵を作成する
openssl genrsa 2048 > default.key
# Certificate Signing Request(CSR, 証明書署名要求)を作成する
# Country Nameなどを聞かれる。最低限Common Name(CN)はlocalhostとする必要がある
openssl req -new -key default.key > default.csr
# SANがlocalhostとなるように入力ファイルを作成する
echo subjectAltName=DNS:localhost > default-san.ext
# 証明書を作成する
openssl x509 -days 3650 -sha256 -req -signkey default.key < default.csr > default.crt -extfile default-san.ext
# PKCS12形式の鍵ストアを作成する
openssl pkcs12 -export -in default.crt -inkey default.key -out default.p12 -name default
# 作成したp12ファイル内の証明書にSubjectAlternativeNameが記載されていることを確認する
keytool -v -list -keystore default.p12 -storetype pkcs12
Mac 키체인에 인증서 등록
키체인 액세스 .app를 시작하고 왼쪽 창에서 '로그인', '인증서'를 엽니다. 오른쪽 창에 인증서 목록이 표시되므로 여기에 위의 단계에서 만든 default.crt를 드래그 앤 드롭으로 추가합니다. 추가하면 SSL 부분을 "항상 신뢰"로 변경합니다.
Chrome으로 다시 액세스하면 자체 서명 인증서를 사용할 때 경고 메시지없이 액세스 할 수 있습니다.
참고
p12 파일에서 개인 키, 인증서를 검색하는 방법
다음 명령으로 꺼낼 수 있습니다. 앞서 언급했듯이 iTerm.app이라면 비밀번호 입력이 잘되지 않기 때문에 Terminal.app를 사용했습니다.
# 秘密鍵を取り出す
openssl pkcs12 -in key.p12 -nocerts -nodes -out privatekey
# 証明書を取り出す
openssl pkcs12 -in key.p12 -clcerts -nokeys -out default2.crt
p12 또는 jks
옛날에는 p12가 아니라 jks 형식이었다고 생각하고 OpenLiberty의 Issue를 들여다 보았는데 19.0.0.3에서 바뀌었을지도 모른다. 일반적으로 p12가 권장되는 것 같습니다.
- htps : // 기주 b. 코 m / 오 펜 rty / 오 펜 rty / 이스에 s / 7041
Reference
이 문제에 관하여(WebSphere Liberty에서 HTTPS 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hiromitsu7/items/27444ac397bf71b0615a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
keytool -v -list -storetype pkcs12 -keystore key.p12
비밀키를 입수하고 거기에서 SAN 첨부의 증명서를 만들어 간다. 비밀키는 디폴트로 생성되는 p12 파일로부터 꺼낼 수도 있는 것 같지만(후술), 여기에서는 제로로부터 만들어 보자. iTerm.app이라면 openssl 명령을 실행할 때 암호를 묻는 경우 키보드 입력이 작동하지 않기 때문에 Terminal.app를 사용했습니다.
# 秘密鍵を作成する
openssl genrsa 2048 > default.key
# Certificate Signing Request(CSR, 証明書署名要求)を作成する
# Country Nameなどを聞かれる。最低限Common Name(CN)はlocalhostとする必要がある
openssl req -new -key default.key > default.csr
# SANがlocalhostとなるように入力ファイルを作成する
echo subjectAltName=DNS:localhost > default-san.ext
# 証明書を作成する
openssl x509 -days 3650 -sha256 -req -signkey default.key < default.csr > default.crt -extfile default-san.ext
# PKCS12形式の鍵ストアを作成する
openssl pkcs12 -export -in default.crt -inkey default.key -out default.p12 -name default
# 作成したp12ファイル内の証明書にSubjectAlternativeNameが記載されていることを確認する
keytool -v -list -keystore default.p12 -storetype pkcs12
Mac 키체인에 인증서 등록
키체인 액세스 .app를 시작하고 왼쪽 창에서 '로그인', '인증서'를 엽니다. 오른쪽 창에 인증서 목록이 표시되므로 여기에 위의 단계에서 만든 default.crt를 드래그 앤 드롭으로 추가합니다. 추가하면 SSL 부분을 "항상 신뢰"로 변경합니다.
Chrome으로 다시 액세스하면 자체 서명 인증서를 사용할 때 경고 메시지없이 액세스 할 수 있습니다.
참고
p12 파일에서 개인 키, 인증서를 검색하는 방법
다음 명령으로 꺼낼 수 있습니다. 앞서 언급했듯이 iTerm.app이라면 비밀번호 입력이 잘되지 않기 때문에 Terminal.app를 사용했습니다.
# 秘密鍵を取り出す
openssl pkcs12 -in key.p12 -nocerts -nodes -out privatekey
# 証明書を取り出す
openssl pkcs12 -in key.p12 -clcerts -nokeys -out default2.crt
p12 또는 jks
옛날에는 p12가 아니라 jks 형식이었다고 생각하고 OpenLiberty의 Issue를 들여다 보았는데 19.0.0.3에서 바뀌었을지도 모른다. 일반적으로 p12가 권장되는 것 같습니다.
- htps : // 기주 b. 코 m / 오 펜 rty / 오 펜 rty / 이스에 s / 7041
Reference
이 문제에 관하여(WebSphere Liberty에서 HTTPS 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hiromitsu7/items/27444ac397bf71b0615a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
p12 파일에서 개인 키, 인증서를 검색하는 방법
다음 명령으로 꺼낼 수 있습니다. 앞서 언급했듯이 iTerm.app이라면 비밀번호 입력이 잘되지 않기 때문에 Terminal.app를 사용했습니다.
# 秘密鍵を取り出す
openssl pkcs12 -in key.p12 -nocerts -nodes -out privatekey
# 証明書を取り出す
openssl pkcs12 -in key.p12 -clcerts -nokeys -out default2.crt
p12 또는 jks
옛날에는 p12가 아니라 jks 형식이었다고 생각하고 OpenLiberty의 Issue를 들여다 보았는데 19.0.0.3에서 바뀌었을지도 모른다. 일반적으로 p12가 권장되는 것 같습니다.
- htps : // 기주 b. 코 m / 오 펜 rty / 오 펜 rty / 이스에 s / 7041
Reference
이 문제에 관하여(WebSphere Liberty에서 HTTPS 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hiromitsu7/items/27444ac397bf71b0615a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)