UniFi - 맥 OSX 키체인 어시스턴트와 OpenSSL을 사용하여 컨트롤러 커스텀 SSL 사용하기 ============================================================================ download at 2016-11-27T04:58:28Z `origin `_ Overview -------- .. raw:: html
-------------- .. raw:: html
이 문서는 사용자가 사파리 웹 브라우저에서의 웹소켓 에러 이슈를 우회하는 방법에 대하여 서술합니다.   이슈의 원인은 기본 SSL 인증서를 신뢰하지 않는 차원을 넘어선 문제입니다. (인증서 신뢰하지 않는 문제 단독으로는 이 이슈가 발생하지 않습니다.) 자신 고유의 인증서 (CA)를 생성하고 기본 인증서를 새로운 인증서로 교체한다면 해당 웹소켓 에러를 우회할 수 있습니다.   시작하기 전에: OpenSSL과 맥 OSX가 구동하고 있는 컴퓨터가 필요합니다. 간단히 하면, 다음의 과정을 거치게 됩니다: #. 인증서를 생성합니다. #. 생성한 인증서에 서명합니다. #. 인증서와 개인키를 내보냅니다. #. 인증서데이터를 파일로 생성합니다. #. 해당 인증서 파일을 라우터에 업로드하고 기본 인증서를 생성한 인증서로 교체합니다. Steps ----- .. raw:: html
-------------- .. raw:: html
이제, 각 단계를 상세하게 살펴보겠습니다: **1. 인증서를 생성** 키체인 어시스턴트를 인증서 생성에 사용합니다. OpenSSL가 확인 할 것이지만, OS는 해당 CA를 자동으로 신뢰하게 하고 싶습니다. #. 키체인 어시스턴트를 실행합니다.(Applications > Utilities > Keychain Assistant) #. 메뉴에서 "Certificate Assistant" 메뉴를 선택하고 "Create a Certificate Authority..."를 선택합니다. #. 페이지에서 요구사항을 입력합니다. a) CA이름을 설정합니다. (**이름을 기억하세요**) b) 인증 타입(Identity Type) = Self Signed Root CA (기본값 입니다.), c) 사용자 인증(User Certificate) = SSL Server d) "Let me override defaults" 를 체크합니다. e) (선택) "Make this CA the default"  를 체크해제 합니다. f) (선택) "Email from" 필드 값을 본인의 이메일로 변경합니다. g) "Continue"를 선택합니다. #. 첫 "Create Information" 페이지에서 a) Serial Number = 1 b) Validity Period (days) = 3650 으로 설정합니다. (이 값을 원한느 값으로 설정할 수 있습니다. 요휴 기간이 지난 이후에는 다시 수행해야합니다.) c) 선택사항: "Create a CA web site"를 체크하고, 장소를 설정합니다. d) "Sign your invitation" 를 체크 해제합니다. e) "Continue" 를 선택합니다. #. 두번 째 "Create Information" 페이지에서 a) 요청하는 상세 정보를 입력하고, 다음 페이지로 이동합니다. #. "Key Usage Extension for this CA" 페이지에서 a) 값을 수정하지 않고 다음으로 이동힙니다. #. "Key Usage Extension for this CA" 페이지에서 a) 값을 수정하지 않고 다음으로 이동힙니다. #. "Key Usage Extension for Users of this CA" 페이지에서 a) 값을 수정하지 않고 다음으로 이동힙니다. #. "Extended Key Usage Extension for this CA" 페이지에서 a) 값을 수정하지 않고 다음으로 이동힙니다. #. "Extended Key Usage Extension for Users of this CA" 페이지에서 a) 값을 수정하지 않고 다음으로 이동힙니다. #. "Basic Constraints Extension for this CA" 페이지에서 a) 값을 수정하지 않고 다음으로 이동힙니다. #. "Basic Constraints Extension for users of this CA" 페이지에서 a) 값을 수정하지 않고 다음으로 이동힙니다. #. "Subject Alternate Name Extension for This CA" 페이지에서 a) 값을 수정하지 않고 다음으로 이동힙니다. #. "Subject Alternate Name Extension for Users of This CA" 페이지에서 a) 값을 수정하지 않고 다음으로 이동힙니다. #. "Specify a Location Certificate" 페이지에서 a) 선택사항: Keychain (**꼭 기억하세요**) 의 위치를 변경합니다. b) "On this machine, trust certificates signed by this CA" 를 체크합니다. c) Create를 선택합니다. **2. CA가 생성한 인증서를 생성합니다.** 키체인 엑세스에서... #. CA에서 저장한 키체인을 찾아서 개인키를 찾습니다. (3개의 동일한 이름을 가진 아이템이 존재합니다. 인증서, 공개키, 개인키) #. "Private key"에 오른쪽을 클릭하여 "Create a certificate with..." 를 클릭합니다. #. "Create your Certificate" 페이지에서 a) 이름을 명명합니다. 라우터의 호스트 네임 등을 추천합니다. b) Identity Type = "Lead" c) Certificate Type = "SSL Server" d) "Let me override defaults"를 체크합니다. e) continue 클릭 #. "Certificate Information" 페이지에서 a) Serial number = 1 b) Validity Period (days)  = 365 (원하는 기간만큼 설정할 수 있지만 유효기간이 지나면 다시 생성해야합니다) c) continue 클릭 #. second "Create Information" 페이지에서 a) 요청하는 상세 정보를 입력하고, 다음 페이지로 이동합니다. #. "Key Usage Extension" 페이지에서 a) 값을 수정하지 않고 다음으로 이동힙니다. #. "Extended Key Usage Extension" 페이지에서 a) "SSL Server Authentication" 체크 b) 다른 모든 옵션은 체크 해제 #. "Basic Constraints Extension" 페이지에서 a) 값을 수정하지 않고 다음으로 이동힙니다. #. "Subject Alternate Name Extension" 페이지에서 a) rfc822Name 값 삭제 b) URI 값 삭제 c) dNSName = GUI에서 확인 한 \ *url/hostname (예) ubnt.local* d) iPAddress = \ *GUI의 IP 주소* #. "Specify a Location Certificate" 페이지에서 a) 선택사항: Keychain (**꼭 기억하세요**) 의 위치를 변경합니다. b) Create 선택  **3. 인증서와 개인키 내보내기** #. 인증서를 저장한 키체인으로 이동하여 개인키와 인증서를 찾습니다. #. 인증서에 오른쪽 클릭하여 내보내기 선택 a) 파일로 저장 (**파일명과 장소를 기억합니다**) #. 개인키에 오른쪽 클릭하여 내보내기 선택 a) 파일로 저장 (**파일명과 장소를 기억합니다**) **4. 인증서 파일 준비하기** 본 문서에서는 OpenSSL을 사용하였습니다. 다른 인증서는 다른 방법을 사용할 수도 있습니다. 커맨드라인 인터페이스의 지식이 있다고 가정합니다. #. 터미널을 실행합니다. #. 선택사항: 인증서와 개인키가 있는 경로로 이동합니다. :: cd path_to_files #. 인증서 파일을 pem 파일로 변경합니다. :: openssl x509 -inform der -in certificate.cer -out certificate.pem #. 개인키를 pem 파일로 변경합니다. :: openssl pkcs12 -in privateKey.p12 -out privateKey.pem -nodes  #. 두개의 파일을 하나로 병합합니다. :: cat privateKey.pem certificate.pem > server.pem    **5. 라우터에 인증서 업로드하기** 터미널에서 #. 라우터에 SSH로 접속합니다. :: ssh router_ip_address -l your_user_name #. 라우터에 폴더를 생성하고, 적절한 권한을 부여합니다. (이 문서에서는 홈폴더를 사용합니다.) :: cd /home sudo chown your_user_name your_user_name #. 새로운 터미널을 생성합니다. #. 새로운 터미널에서 라우터로 파일을 복사합니다. :: scp server.pem your_user_name@router_ip_address:~/server.pem #. 이전 터미널에서 파일의 소유주를 변경합니다. :: sudo chown www-data:www-data ~/server.pem #. (선택) 이전 윈도우에서 기본 인증서를 백업합니다. :: sudo cp /etc/lighttpd/server.pem ~/server.pem.backup #. 기존 인증서를 덮어쓸 수도 있습니다. :: sudo cp ~/server.pem /etc/lighttpd/server.pem #. 새로운 인증서에 적절한 권한을 부여합니다. :: sudo chmod 400 /etc/lighttpd/server.pem #. lighttpd 를 재시작합니다. :: sudo /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf 12. 테스트를 해봅니다!   도움이 되는 포스트: http://community.ubnt.com/t5/EdgeMAX/Custom-SSL-Certificates/td-p/405628 http://community.ubnt.com/t5/EdgeMAX/Replacing-the-self-signed-SSL-certificates/td-p/381481 http://community.ubnt.com/t5/EdgeMAX/Problem-with-lighttpd-and-server-pem/td-p/771390 https://www.sslshopper.com/article-most-common-openssl-commands.html http://www.techrepublic.com/blog/apple-in-the-enterprise/create-your-own-ssl-ca-with-the-os-x-keychain/> 관련 문서 ---------------- .. raw:: html
-------------- .. raw:: html
- `SSH로 커넥션을 생성하는방법 `__       `WiflyGuy `__ / |Ubiquiti Employee| `UBNT-Jamie `__  .. |Ubiquiti Employee| image:: http://ubnt.i.lithium.com/html/rank_icons/ubnt-employee.gif :class: lia-user-rank-icon-left :name: display_1067abeb4fca5a