Azure의 Grafana – LetsEncrypt를 통해 SSL 활성화
LetsEncrypt란?
LetsEncrypt.org는 SSL을 사용하는 웹 사이트를 홍보하기 위한 제안입니다.중요한 데이터가 있는지 여부에 관계없이 SSL을 활성화해야 합니다.LetsEncrypt는 모든 도메인에서 사용할 수 있는 완전 무료 SSL 인증서를 제공합니다.인증서는 30일로 제한됩니다. 이것은 정기적으로 키를 다시 만들어야 한다는 것을 의미합니다.그러나'certbot'이라는 실용 프로그램이 우리를 위해 자동화를 실현할 것이다.
인증서를 생성할 수 있는 여러 가지 방법이 있지만, 이 예에서는 이른바 HTTP 질문 방법을 사용할 것입니다.일반적으로 DNS 질의를 실행하는 방법이 더 안전합니다. 다른 포트를 여는 것에 의존하지 않기 때문입니다. 그러나 DNS 공급자에 특정하기 때문에 이 방법을 소개하지 않습니다.
1단계 - 도메인 이름 설정
유효한 인증서를 얻기 위해서는 IP 주소에서 작동하지 않는 도메인 이름이 필요합니다.
도메인 이름을 grafana 인스턴스에 대한 IP 주소로 설정합니다.문제가 발생하지 않도록 하기 위해서, 나는
dig
또는 nslookup
을 사용하여 그 지향이 정확하다는 것을 확보하는 것을 건의합니다.또한 포트 3000(즉 http://{domain}:3000/
)에서 이 영역을 사용하여grafana에 접근하려고 시도합니다.2단계 - 필요한 포트 열기
Lets Encrypt가 포트 80 (http) 에서 http 도전 통신을 할 수 있고, 사용자가 포트 443 (https) 에서 통신할 수 있도록 네트워크 보안 그룹의 포트를 열어야 합니다.
Azure 포털의 VM으로 이동하여 네트워킹을 클릭한 다음 인바운드 포트 규칙 추가를 클릭합니다.
대상 포트 범위의 경우
80,443
과 같이 쉼표로 구분하여 80과 443을 입력한 다음 저장을 클릭합니다.3단계 - Grafana가 파일 시스템의 인증서에 액세스하도록 합니다.
grafana 프로세스는 내장된 HTTP 서버가 있기 때문에 이 인증서를 사용합니다.따라서 프로세스는 인증서를 생성하는 위치에 접근해야 합니다.
우선, 우리는 그룹을 만들 것입니다. 이 그룹은 ssl 인증서에 대한 접근을 제공할 것입니다.
sudo groupadd sslcerts
그리고 인증서를 위한 디렉터리를 만들고 소유권을 새로 만든 그룹으로 변경하며 권한을 수정할 것입니다
sudo mkdir /etc/letsencrypt
sudo mkdir /etc/letsencrypt/archive
sudo mkdir /etc/letsencrypt/live
sudo chown -R root:sslcerts /etc/letsencrypt/
sudo chmod 755 /etc/letsencrypt/archive
sudo chmod 755 /etc/letsencrypt/live
마지막으로,grafana의 프로세스 사용자를 새로 만든 그룹에 추가할 것입니다.
sudo usermod -G sslcerts -a grafana
4단계 - LetsEncrypt Certbot 설치 및 실행
다음에, 우리는certbot을 설치해야 한다. 이것은 Lets Encrypt와 통신할 응용 프로그램이다.APT에 가방이 하나 있어서 간단합니다.
sudo apt install -y certbot
그리고 나서 우리는 독립된 모드에서 이 도구를 실행할 수 있다.
sudo certbot certonly --standalone
Lets Encrypt에 전자 우편 주소를 주고 약관에 동의한 다음 인증서를 생성하고 싶은 영역을 추가해야 합니다.이것은 1단계에서 설정한 것입니다.https 등이 없습니다.Certbot은 다음에 포트 80에 임시 http 서버를 설정합니다. 이 서버는 LetsEncrypt 서버가 URL을 누르면 이 영역을 가지고 있는지 확인할 수 있습니다.
완료하면 3단계에서 만든 폴더에 인증서 파일이 있습니다.
azureuser@grafana-azure:~$ sudo ls -hal /etc/letsencrypt/live
total 16K
drwx------ 3 root root 4.0K Mar 13 21:08 .
drwxr-xr-x 9 root sslcerts 4.0K Mar 13 21:08 ..
-rw-r--r-- 1 root root 740 Mar 13 21:08 README
drwxr-xr-x 2 root root 4.0K Mar 13 21:08 grafanablog.martinjt.me
certbot이 디렉터리 그룹에 대한 변경 사항을 존중하지 않기 때문에 이 점을 바로잡아야 합니다.만약 우리가 파일에서 변경한다면,certbot는 재서명할 때 현금으로 바꿀 것입니다.5단계 – SSL을 사용하도록 Grafana 구성
grafana 설정을 열어 편집하기
sudo nano /etc/grafana/grafana.ini
다음 설정을 편집합니다.protocol = https
domain = <your-domain>
enforce_domain = true
root_url = https://<your-domain>
cert_file = /etc/letsencrypt/live/<your-domain>/fullchain.pem
cert_key = /etc/letsencrypt/live/<your-domain>/privkey.pem
grafana 서비스를 다시 시작합니다.
sudo systemctl restart grafana-server.service
이제 다음과 같은 방법으로 서비스에 액세스할 수 있습니다.https://<your-domain>:3000/
https용 포트 443
기본적으로 Linux의 제한으로 인해 Grafana는 포트 443에서 정탐할 수 없습니다.다음 명령을 사용하여 이 기능을 활성화해야 합니다.
sudo setcap 'cap_net_bind_service=+ep' /usr/sbin/grafana-server
이제 grafana.ini
을 다시 편집할 수 있습니다.http_port = 443
그리고 서비스 재개
sudo systemctl restart grafana-server.service
이제 포트를 사용하지 않고grafana 인스턴스에 액세스할 수 있어야 합니다.https://<your-domain>
링크 첨부
Reference
이 문제에 관하여(Azure의 Grafana – LetsEncrypt를 통해 SSL 활성화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/martinjt/grafana-on-azure-enabling-ssl-with-letsencrypt-1ega텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)