사설 인증서?
앞서 Certbot 으로 인증서를 발급받으신 것을 기억하실 겁니다. 그리고 그 인증서를 nginx 에 적용해 https 사이트를 만든 것도 기억하실 겁니다.
해당 포스팅과 링크된 사이트에서 보셨듯이 인증서는 암호 통신을 위해 사용됩니다. 공인 인증서는 권한 있는 공인된 CA 에서 인증서를 발급하는데 반해, 사설 인증서의 경우는 공인받지 않은 CA 를 만들고, 그 CA 를 이용해 인증서를 발급하는 것입니다.
왜 사설 인증서가 필요하죠?
FreeNAS 의 WebUI 에 적용하기 위해 사용할 것이고, VPN 서버를 설정할 때 사용할 것입니다.
인증서 발급 방법
FreeNAS 는 CA 의 역할을 할 수 있습니다. FreeNAS 를 CA 로 만들고, 인증서를 발급할 것입니다.
Root CA 인증서 발급하기
FreeNAS WebUI 의 System – CAs 로 이동합니다.
ADD 를 눌러 CA 인증서를 만들거나 가져올 수 있습니다.
루트 인증서를 만들어 줍니다. 중요한 부분은 Type, 키 길이, 다이제스트 알고리즘, Lifetime, CN 입니다. State 나 Locality, Organization, Email 등에는 아무렇게나 적어도 무방합니다.
Admion CA 를 만들었습니다.
사설 인증서 발급하기
OpenSSL 로 수동으로 발급해야 정상적으로 발급됩니다.
OpenSSL 을 이용하는 방법에 대한 것은 조만간 포스팅하도록 하겠습니다.
CA 인증서를 만들고 나면 사설 인증서를 발급할수 있습니다.
System-Certificates 로 이동해서 인증서를 발급하겠습니다.
ADD 를 눌러 만들 수 있습니다.
FreeNAS WebUI 에 등록할 인증를 만들도록 하겠습니다.
- Type 는 Internal Certificate (내부 인증서) 를 선택하고
- Signing Certificate Author 은 앞서 만든 CA 를 선택합니다.
- 나머지는 적당히 써 주시고
- Common Name (CN) 에는 FreeNAS WebUI 의 주소를 써 줍니다. 앞서 만든 도메인인 nas.lan 을 입력하겠습니다.
- Subject Alternate Names 에는 FreeNAS WebUI 의 다른 주소를 써 줄수 있습니다.
만약 main.example.com 이라는 도메인으로도 접근하고자 한다면 입력해 주면 됩니다.
그 후 SAVE 를 눌러서 만듭니다.
FreeNAS WebUI 에 인증서 적용하기
내부망에서 왜 https 암호통신을 하는가 의문이 들 것입니다.
FreeNAS의 WebUI 에서는 FreeNAS 의 모든 설정을 관리할 수 있으며 Root 계정으로 로그인합니다. 그런데 http 비 보안 통신을 하게 되면 오가는 모든 데이터가 평문 전송됩니다. 내부망에서라도 Root 계정의 비밀번호를 평문으로 전송하는 것은 너무 위험합니다.
그러니 FreeNAS 의 WebUI 에는 인증서를 적용하는 것이 좋습니다.
System-General 으로 이동해
protocol 에서 HTTP+HTTPS 를 선택합니다. 설정이 잘못되는 등의 문제가 발생했더라도 http 프토로콜로 접속할 수 있게 하기 위해서입니다. 일종의 보험인 셈이죠.
GUI SSL Certificat 에서 발급한 인증서를 선택합니다.
SAVE 를 눌러 적용하면 웹 서비스를 재시작할 것이냐는 메세지가 나타납니다.
confirm 을 체크하고 continue를 누르면 웹 서비스가 재시작됩니다.
https://nas.lan 주소로 FreeNAS 의 WebUI 로 보안 접속 할 수 있습니다.
클라이언트에 RootCA 등록하기
위에서 발급하고 적용한 인증서는 공인받지 않은 CA 에서 발급한 인증서입니다. 그래서 클라이언트에서는 ‘안전하지 않은’ 인증서로 판단합니다. 예를 들어 크롬의 경우, https://nas.lan 에 접속하려 하면 아래와 같은 경고 메세지가 나타납니다.
RootCA 가 등록되어 있지 않아서 그런 것입니다. 이를 해결하기 위해선 RootCA 를 클라이언트에 수동으로 등록해 주어야 합니다.
CA 인증서 다운로드
FreeNAS WebUI 의 System – CAs 로 이동해 앞서 만든 CA 의 을 눌러 Export Certificate 를 선택합니다. 그러면 생성한 CA 인증서가 다운로드 됩니다.
인증서 설치 (윈도우)
다운로드 받은 인증서 파일을 오른쪽 클릭해 ‘인증서 설치‘ 를 선택합니다.
의심스러운 파일이니 진짜 열 것이냐고 묻습니다.
신뢰할 수 있으니, 열기를 눌러 열어줍니다.
인증서 가져오기 마법사가 열립니다. ‘로컬 컴퓨터’ 를 선택하고 다음을 눌러줍니다.
예를 눌러 관리자 권한으로 진행합니다.
‘모든 인증서를 다음 저장소에 저장‘ 을 선택하고, ‘찾아보기‘ 를 눌러 인증서를 저장할 위치를 지정합니다.
‘신뢰할 수 있는 루트 인증 기관‘ 을 선택한 후 확인을 눌러줍니다. Root CA를 의미합니다.
‘다음’ 을 눌러 진행합니다.
인증서가 설치되었습니다. 마침을 눌러 설치를 끝냅니다.
이제 앞서 만든 루트 인증서는 클라이언트가 보기에 올바르고 신뢰할 수 있는 인증서입니다. 이제 https://nas.lan 으로 접속해도 보안 경고가 나타나지 않습니다.
인증서 설치(안드로이드)
안드로이드는 인증서 설치가 간단합니다. 안드로이드 9 기준으로 설명하자면
- 먼저 Root CA 인증서를 설치하고자 하는 스마트폰에 다운로드 받습니다.
- [설정 – 생체 인식 및 보안 – 기타 보안 설정 – 디바이스에 저장된 인증서 설치] 로 이동합니다.
- 다운로드받은 인증서를 선택하고, 인증을 한 다음
- 인증서 이름을 원하는 대로 설정하고 ‘VPN 및 앱‘ 을 선택한 다음 확인을 눌러 설치합니다 .
안드로이드 버전마다 약간씩 차이는 있겠지만 전체적인 과정은 비슷할 것입니다.
마치면서
이것으로 인증서를 발급받고 적용까지 하였습니다.
다음 포스팅에서는 미디어서버를 만들고 설정하는 것을 다룹니다.