Raspberry Pi 3 SSL certificate 오류
파이썬 패키지를 받으려고 하니 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 와 같은 식으로 써주면 된다.