🔍 OpenSSL를 설치하여 자체 서명
Flask로 열은 서버에서 JS를 통해 사용자의 카메라에 접근을 시도했는데,
물리적 인터페이스에 접근하려면 HTTPS의 서버 URL이 필요했다 .
HTTP는 HyperText Transfer Protocol을 의미하는 것으로, 서버와 클라이언트의 통신 프로토콜이다.
해당 프로토콜을 통해 데이터를 일반 텍스트로 교환하는 방식인데,
이 과정에 제 3자의 데이터 탈취 및 오남용이 생길 수도 있다.
HTTPS는 HTTP에 Secure을 더한 것으로,
CA(독립된 인증 기관)으로 부터 SSL / TLS 인증서를 요구한다.
즉, 데이터 교환 전에 브라우저와 인증서를 공유하여 안정성을 확보한다.
하지만 CA로부터 인증서 받기는 쉽지 않는데, 이러한 점을 자체 서명으로 해결 할 수 있다.
자체 서명은 실제 배포에는 보안 문제가 있으니, 어디까지나 프로토타입으로만 적절하다.
간단한 프로젝트의 프로토타입을 위해 자체 서명을 만들어보자 !
📕 OpenSSL 설치
자체 서명을 활용하려면 먼저 OpenSSL을 설치해야 한다.
해당 사이트에 들어가서 내 컴퓨터 환경에 맞는 파일 다운로드
(Light 버전은 다운받지 말라고해서 좀 더 용량 큰 파일 다운로드 받음)
기본 설정값으로 세팅한다.
C:\Program Files\OpenSSL-Win64\bin
기본 설정값대로 하면 해당 경로에 파일이 설치된다.
"시스템 환경 변수 편집" -> "환경 변수" -> "Path" -> OpenSSL 설치 경로 저장 -> 컴퓨터 다시 시작
컴퓨터를 재부팅 안하면 설치 확인이 되지 않았다.
재부팅하고 버전 확인하면 설치된 것을 확인 할 수 있다 .
📕 자체 서명 만들기
공인 인증기관에서의 인증서를 받기위해서는 돈을 지불해야한다.
OpenSSL을 사용하면 자체 서명 인증서를 만들 수 있다.
자체 서명 인증서가 설치된 서버에 접속하면 브라우저의 경고가 나타나는데,
개인사용 목적에는 크게 상관 없다.
OpenSSL에서 만들어진 개인키와 인증서는 원하는 곳에 등록하여 사용할 수 있으며,
여러 곳에서 공용으로 사용 가능하다 .
openssl genrsa -out key.pem 2048
터미널에 해당 구문을 넣어주면
2048비트 RSA 개인키가 파일 key.pem로 만들어진다
openssl req -new -x509 -key key.pem -out cert.pem -days 365
그리고 위의 구문을 터미널에 마저 작성한다.
그러면 아래와 같이 몇개의 질문들이 있는데, 간단하게 적어주면 된다.
자체 서명된 인증서 cert.pem을 생성 할 수 있다.
(인증서 유효 기간은 일반적으로 1년으로 설정했다.)
마침내 개인키와 SSL 인증서를 만들었다.
해당 인증서를 통해 https로 서버를 열 수 있다.
http 같은 경우 보안 이슈로 js 카메라를 실행 시킬 수 없지만,
이제 https로 url을 생성하여 js 카메라를 사용 할 수 있다.
'WEB > Backend' 카테고리의 다른 글
SFTP 파일 전송 (VS Code 플러그인으로 원격 서버 파일 전송) (1) | 2024.10.03 |
---|---|
AWS EC2 서버 세팅 및 배포 / 몽고DB 도메인 연결하기 (A~Z까지) feat. Flask서버, Filezilla,Studio 3T,Gabia (0) | 2024.07.27 |
[Firebase] storage에 비디오 영상 넣고 가져오기 (with flask) (0) | 2024.05.25 |
[Firebase] 데이터베이스에 CSV 파일 Import (0) | 2024.05.21 |
[Firebase] "error" : "Permission denied" 오류 (0) | 2024.05.20 |