• 믿을 수 있는 ( = MITM이 아님을 확인할 수 있는, 정직하게 행동하는 )
☞ TTP ( Trusted Third Party ) , honest broker..

ex) 우편함
공개키라 기밀성은 필요없음. 소유자 확인만 필요!

• ITU-T 권고안 X.509는 디렉터리 서비스를 정의하는 권고안
X.500 시리즈의 한 부분
• 공개키 인증서 규격에 대한 표준
• 사용자 정보 데이터베이스를 관리하는 하나의 서버 또는 분
산 서버 집단
• 공개키 인증서의 공개 저장소로 이용

다음에 "SafeShop.com"을 방문할 때 인증서를 신뢰하기 전에 브라우저 또는 애플리케이션에서 CRL을 확인해봄 > 해당 CRL 목록에서 "SafeShop.com" 인증서를 찾으면 사이트를 신뢰하지 않으며 연결이 안전하지 않을 수 있음을 경고합니다.
PKI 에서 정의
디지털 인증서를 생성,관리, 저장하고 배분하며 취소하는데 필요한 인프라,정책
안전하고 편리하고 효율적인 공개키 획득을 위해

$ openssl s_client -connect www.google.com:443
openssl verify -show_chain -CAfile myCA.pem myCert.crt
$ openssl verify -show_chain -CAfile myCA.pem -untrusted intermediateCA.pem myCert.crt
rootCA , 중간 CA, 사용자 인증서 만들기 (1점)
• CN=이니셜ROOT, 이니셜CA, 이니셜 (본인 이니셜 사용)
• 파일명도 상기이름.확장자
• 인증서 파일 3개 제출 ( pri key 파일 제외)
openssl genrsa -out rootCA.key 2048
YOUR_INITIALS를 실제 이니셜로 바꿉니다:
openssl req -x509 -new -nodes -key rootCA.key -days 3650 -out rootCA.pem -subj "/CN=jhkangROOT"
openssl genrsa -out intermediateCA.key 2048
YOUR_INITIALS를 실제 이니셜로 바꿉니다:
openssl req -new -key intermediateCA.key -out intermediateCA.csr -subj "/CN=jhkangCA"
openssl x509 -req -in intermediateCA.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out intermediateCA.pem -days 3650
openssl genrsa -out user.key 2048
YOUR_INITIALS를 실제 이니셜로 바꿉니다:
openssl req -new -key user.key -out user.csr -subj "/CN=jhkang"
openssl x509 -req -in user.csr -CA intermediateCA.pem -CAkey intermediateCA.key -CAcreateserial -out user.pem -days 365
루트 CA에 대해 사용자 인증서를 확인하여 신뢰 체인이 손상되지 않았는지 확인할 수도 있습니다:
openssl verify -show_chain -CAfile rootCA.pem -untrusted intermediateCA.pem user.pem
이 단계가 끝나면 과제를 위해 제출할 다음 인증서를 갖게 됩니다:
rootCA.pem
intermediateCA.pem
user.pem
openssl x509 -in jhkangROOT.pem -inform PEM -out jhkangROOT.crt
다음 명령은 /usr/local/share/ca-certificates 디렉터리가 존재하는지 확인합니다. 이미 있는 경우 다시 만들지 않습니다:
sudo mkdir -p /usr/local/share/ca-certificates
sudo cp jhkangROOT.crt /usr/local/share/ca-certificates
$ sudo update-ca-certificates
이제 rootCA 인증서가 /etc/ssl/certs 위치에 설치되어 있어야 합니다. 인증서가 있는지 확인할 수 있습니다:
$ ls /etc/ssl/certs | grep jhkangROOT
모든 것이 잘 되었다면 출력에 실제 인증서를 가리키는 jhkangROOT.pem 심볼 링크가 표시되어야 합니다.
이 단계를 수행하면 시스템에 jhkangROOT 인증서를 설치한 것이며, 시스템의 인증서 저장소에 의존하는 시스템 유틸리티 및 애플리케이션에서 신뢰할 수 있게 됩니다.
인증서 체인 verify (1점)
• -CAfile 옵션 빼고, -untrusted 옵션만 사용
• verify 명령 및 결과 화면 캡쳐 1-2.jpg
intermediateCA.ext vi
[ v3_ca ]
basicConstraints = critical,CA:TRUE
openssl x509 -req -in intermediateCA.csr -CA jhkangROOT.pem -CAkey rootCA.key -CAcreateserial -out jhkangCA.pem -days 3650 -extfile intermediateCA.ext -extensions v3_ca
openssl verify -show_chain -untrusted jhkangCA.pem jhkang.pem
이 명령은 인증서 체인을 확인합니다. 중간 인증서에 -untrusted 옵션을 제공하면, OpenSSL은 이 인증서를 사용하여 jhkang.pem 최종 엔터티 인증서에서 시스템의 신뢰할 수 있는 루트 CA까지 체인을 완성합니다. 이미 시스템에 신뢰할 수 있는 루트 CA로 jhkangROOT.pem을 설치했으므로 OpenSSL은 이를 인식합니다.
중간 CA 인증서가 CA로서 유효하려면 기본Constraints=CA:TRUE 확장자를 가져야 합니다. 이 단계는 체인의 무결성을 보장합니다.