본문 바로가기

main

[NCP] Certificate Manager에 Let's Encrypt 인증서 등록하기 SSL 적용이 잘 안 될 때 이것저것 해보느라 NCP에 등록도 해 보고 그랬다. 그렇지만 이거 적용 안 한다고 SSL이 안 될 지는 잘 모르겠다..? 왜냐면 지금보니 사용중에 아니오라고 나와있어서 ... ?!?!? 하지만 일단 귀찮은 과정을 거쳤으므로 추후에 또 필요하게 될 경우를 위해 저장해두겠다. 인증서 유효여부를 확인바란다는 오류가 나올 경우 이 이유를 의심해볼 수 있다고 한다. fullchain.pem에는 인증서의 cert.pem과 chain.pem을 합친 내용이 기재되어 있는데, Root CA와 Sub CA 정보가 포함되어야하기 때문에 이 정보를 추출하여 certification chain을 생성해줘야 한다고 함. 구글링해보니 윈도우에서 하는 방법만 보여서 나도 윈도우에서 했다.. scp를 통해.. 더보기
[CentOS 7] let's encrypt 인증서 확인하기 / 갱신하기 (crontab) 인증서 내용 확인 명령어는 certbot certificates 이며 만료일도 여기서 확인할 수 있다. 갱신은 만료일 30일 전부터 할 수 있다. certbot renew ㅋㅋㅋㅋ아직 아니라고 안 시켜줌 ㅎㅎ not yet을 보더라도 한 달에 한번씩 갱신하는걸로 crontab에 등록해보겠다. crontab -e 0 4 15 * * certbot renew 크론 문법은 순서대로 이다. *는 매번을 의미한다. 위 문법은 매년 매달 15일 4시 0분에 명령어를 수행하게 된다. 크론탭은 서버가 꺼져있으면 작동하지 않는다고 한다. 그 시간에 서버에 문제가 생겼을 경우에도 작동시켜주고 싶다면 anacron 등을 따로 설정해주어야 하는 것 같다. vim /var/log/cron log는 여기에 남는다고 하니 다음 실.. 더보기
[정규표현식] Rewrite 지시자로 정규표현식 이해하기 Rewrite Pattern에 정규식을 사용할 수 있다. 다음은 많이 사용되는 정규식 문법이다. . : 다수의 한 문자 ? : 0개 이상의 한 문자 * : 0개 이상의 문자 또는 문자열 + : 1개 이상의 문자 또는 문자열 (chars) : 문자 또는 문자열을 그룹화 ^ : 문자열의 첫문자(열)을 지정 $ : 문자열의 끝문자(열)을 지정 \ : 정규표현식에서 특별한 의미로 사용되는 문자의 특수기능을 제거 {n} : n번 반복 {n,} : n번 이상 반복 {n,m} : n번 이상 m번 이하 반복 [chars] : 문자들의 범위 또는 표현할 수 있는 문자들을 설정 Rewrite Subrutine 지시자 L : 뒷 구문 여부를 무시, 해당 줄에서 종료 N : 새로운 Rule 시작 R : Redirection... 더보기
[CentOS 7] Apache Rewrite로 http -> https, non-www -> www로 주소 Redirect 시키기 RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URL} [R=301,L] RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URL} [R=301,L] 두 가지를 한번에 [OR]로 조건에 주고 Redirect 시킬 수도 있으나.. 일단 80으로 들어오거나 443으로 들어오거나 어디로 올 지 모르겠고 만약 80이라면 Proxy로 443으로 보내버리고 이미 https가 되는 상황이어서 어떻게 할까... 하다가 각각의 VirtualHost에 넣어주는 방법을 택했다.. 더보기
[Node] API 통신용 포트에도 SSL 적용시키기 일반 유저가 접속하는 80, 443 포트 외에 정보를 받아와야 하는 API 주소(다른 포트번호)에는 SSL이 적용되지 않아서 ERR_SSL_PROTOCAL_ERROR를 받았다. 처음에는 임시로 프론트에서 해결해보고자 React에 이 meta 태그를 입력했는데 일단 임시방편이기도 하지만 이렇게 넣어줘도 통신이 되지는 않았다. Node.js의 구동 코드에 SSL인증서 파일을 입력해주면 된다. var app = require('../app'); // HTTPS const https = require('https'); const fs = require('fs'); const options = { key: fs.readFileSync('privkey.pem'), cert: fs.readFileSync('fullc.. 더보기
[CentOS 7] https, SSL인증서 적용 무료 SSL 인증서 Let's Encrypt를 사용했다. 이 인증서는 무료라서 3개월마다 재갱신을 해주어야 한다고 함. 설정파일 설치, 내 도메인의 인증서 발급 yum install epel-release yum install python-certbot-apache yum install mod_ssl certbot --authenticator standalone --installer apache -d domain -d domain --pre-hook "systemctl stop httpd" --post-hook "systemctl start httpd" domain 부분에 domain주소를 입력해준다. httpd.conf 파일에 VirtualHost 설정 Listen 80 Listen 443 Includ.. 더보기
[CentOS 7] Apache SSL 적용 중 에러 해결 과정 systemctl restart httpd systemctl status httpd -l 아파치 시작이 안 돼서 상태를 봐도 로그에 당장 이유는 알려주지 않고 일단 안될 경우 httpd.service: main process exited, code=exited, status=1/FAILURE Failed to start The Apache HTTP Server. Unit httpd.service entered failed state. httpd.service failed. 어이없게도 자체 로그는 이게 다임... 차근차근 이유를 찾아보자. 구글링해보며 시도해본 것들 문법 검사 apachectl configtest Syntax OK. httpd.conf의 VirtualHost 내에서 기록하는 error_lo.. 더보기
[Linux] 파일에서 특정 검색어 포함 여부 검색하기 grep apache 설정 중 error_log를 살펴보는데 [so:warn] [pid 28282] AH01574: module proxy_module is already loaded, skipping [so:warn] [pid 28282] AH01574: module rewrite_module is already loaded, skipping 뭐 이런 게 있어서, 일단 warn 이기도 하고, skipping 이라고 하기에 처음에는 대수롭지 않게 여기고 있다가 그래도 지우는게 좋겠다 싶어 구글링을 해보았다. grep 찾을문자열 경로 grep rewrite /etc/httpd/conf.modules.d/* 이외 상황에서도 grep은 유용하게 잘 쓰인다. 더보기