2.2. 루트 인증 기관 인증서(Root Certification Authority Certificate) 만들기

CA.pl -newcert 
(openssl req -config /etc/openssl.cnf-new -x509 -keyout newreq.pem -out newreq.pem -days 365) 
  

자체 서명된 루트 인증 기관의 인증서를 만든다. 인증서와 Private Key는 newreq.pem 에 저장된다. Common Name(CN)은 "ACME root Certificate"와 같은 것을 사용하면 된다. 이 파일에는 인증서와 Private Key가 섞여있기 때문에 쪼개야 한다. ---CERTIFICATE--- 부분은 인증서 부분으로 cacert.pem이란 파일에 저장하고, ---RSA PRIVATE KEY---부분은 Private Key로 cakey.pem에 저장한다. (역주:이 때 반드시 ---BEGIN...---부분과 ---END...--- 부분이 포함되도록 저장해야 한다.) 그 다음에 키 누출을 방지하기 위해 newreq.pem을 지우자.

openssl.cnf에 포함된 database경로에 "index.txt"라는 빈 파일을 만들고, serial경로에 1 이란 숫자로 된 "serial"파일을 생성한다. (역주:아래는 역자가 생성한 방법이다.)

# touch /etc/index.txt
# echo "01" > /etc/serial
  

기본적으로 365일 날짜 제한이 되어 있는데, 이렇게 하면 1년이 지나고 나서 더이상 루트 인증 기관의 키와 그것에 의해 서명된 키들을 사용할 수 없다. 이렇게 되는 것을 방지하려면 날짜 제한을 크게 해서 생성하면 된다. 기업 정도의 레벨에서는 약 5년 정도의 기간을 권고한다. (역주:아직 SSL에 대해 완벽히 알지 못한다면 짧은 기간만 설정할 것을 권고한다.)

openssl req -config /etc/openssl.cnf-new -x509 -keyout newreq.pem -out newreq.pem -days 1825
  

이렇게 생성된 루트 인증 기관 키는 반드시 다른 인증서들을 서명하는 곳에만 사용해야 한다. Private Key는 위험에 노출되지 않도록 반드시 안전한 곳에 보관하고, 절대로 암호문(Passphrase)을 제거해서는 안된다.

자. 이제 루트 인증 기관을 만들었다. 다른 사람들이 당신의 루트 인증 기관 인증서가 필요할 수 있다. 그러면 그들에게 다운로드받아서 그들의 브라우저에 설치하라고 알려주면 된다.

다른 인증서를 서명할 때마다 암호문을 입력해야 하는 번거로움이 있지만, Private Key가 누출될 것을 생각해서 귀찮게 여기지 말자.