Raspberry Pi

Raspberry Pi 3 SSL certificate 오류

LimeLee 2019. 1. 8. 17:53

파이썬 패키지를 받으려고 하니 SSL 에러가 발생한다.

SSL 검증을 하지 않고 받는 옵션도 존재하는데 이런 옵션을 사용하기 힘든 때에 발생을 했다.



purge, update, upgrade를 해보아라 인증서를 가져와서 덮어씌워라 등 구글링해서 얻은 방법들을 여러가지 시도해보았지만 실패.

여러 번의 삽질 끝에 내 문제의 경우 의외로 간단했었고 라즈베리 파이에 OS만 올리고 별 다른 서버 설정을 안했을 경우 비슷한 문제가 생길 가능성이 매우 높을 것 같아 기록 겸 포스팅 한다.




결과부터 말하자면 실제 시간과 라즈베리 파이에서 가리키는 시간이 달랐다.

RTC 모듈이 없는 라즈베리 파이는 전원을 끌 때마다 실제 시간과 많이 동 떨어지게 된다.



date 명령어를 통해 OS에 설정 된 시간을 확인 할 수 있다. 내 경우에는 2016. 07. 04.로 설정되어 있다. 

웹 서버로 운영할 거였기에 재부팅은 고작 2번정도 이루어졌지만

리눅스 등의 OS를 설치할 땐 시간 설정을 bios에 입력된 시간을 현재 시간으로 하기 때문에

현재 시각과 차이가 많이 남을 알 수 있다.


그래서 인증서의 유효기간과 서버의 시간이 맞지 않게 되고 유효한 인증서임에도 불구하고 사용할 수 없다고 뜬다.

이를 해결하기 위해 ntpdate를 사용한다.


$ sudo apt-get install ntpdate

설치가 되어 있지 않으면 apt 패키지를 통해 받을 수 있다.



$ sudo ntpdate - u 3.kr.pool.ntp.org

위 명령어를 통해 ntp 서버의 시간과 동기화를 해줄 수 있다.

현재시간과 약 79338708초 차이가 났음을 보여준다. 

이 후, date 명령어를 통해 라즈베리 파이의 시간을 확인한 결과 제대로 동기화 되어있음을 알 수 있다.



ntp서버와 동기화를 시켜주니 인증서 에러가 발생하지 않는다.

위에서 언급했다시피 라즈베리파이는 RTC 모듈이 없어 전원이 OFF 되면 시간 정보를 저장하지 않는다.

그 외에도 시간이 다시 안맞게 되는 경우가 발생할 수 있으니


crontab을 써서 자동으로 ntp서버와 동기화를 시켜주도록 한다.


* * * * * /usr/sbin/ntpdate 3.kr.pool.ntp.org

위는 매 분마다 ntp서버와 동기화를 하는 작업을 실행시켜준다.


개인적 상황에 따라 주기를 설정해주면 된다.


*분(0~59)    *시간(0~23)    *일(1~31)    *월(1~12)    *요일(0~7)

예로 들어 4 * * * * 의 경우 4분이 될 때마다 작업을 실행 시켜주는 것이다.

4분마다가 아닌 1시 4분, 3시 4분, 12시 4분등의 4분이 될때이다.

4분(시간,일..)마다 실행시켜주는 것은 */4 와 같은 식으로 써주면 된다.