현재 NFS를 통해 공유하고 LetsEncrypt의 와일드카드 인증서를 사용하려고 하는데 이를 사용하도록 되어 있는 서버가 그렇게 할 수 없습니다.
내 설정의 경우: 3개의 가상 머신(향후 4개 정도)이 실행 중입니다. 하나는 모든 http 및 https 트래픽을 가져와 내 메일 서버와 Kanboard로 리디렉션하는 역방향 프록시입니다. 내 메일 서버는 iRedMail을 사용하여 실행됩니다.
내 문제는 Kanboard 및 iRedMail 서버에 인증서를 배포할 수 없다는 것입니다. Kanboard(APACHE2)는 다음과 같이 말합니다.
SSLCertificateFile: file '/mnt/letsencrypt/live/domain.com/fullchain.pem' does not exist or is empty
iRedMail(NGINX)은 다음과 같습니다.
nginx: [emerg] BIO_new_file("/etc/ssl/certs/iRedMail.crt") failed (SSL: error:0200100D:system library:fopen:Permission denied:fopen('/etc/ssl/certs/iRedMail.crt'
이 게시물이 너무 길어지는 것을 원하지 않았기 때문에 내 구성과 내가 수행한 작업을 사용하여 붙여넣기 상자를 만들었습니다. 역방향 프록시,빨간 메일,콤바드: 모든 콘텐츠는 6개월간 이용 가능합니다.
domain.com(역방향 프록시를 의미)에 대한 HTTPS 액세스가 제대로 작동합니다.
출력은 다음과 같습니다sudo ls -l /etc/letsencrypt/(살다)
drwxrwxrwx 3 administrator root 4096 Feb 13 16:25 live
3개의 서버 모두 Ubuntu 1804 Server를 실행하고 있으며 "관리자" 사용자는 동일한 자격 증명을 사용합니다.
더 많은 정보가 필요하시면 언제든지 문의해 주세요. 편집하다
답변1
목록의 데몬은 루트(메일 및 웹 수신 포트 < 1024)로 실행되고 이러한 데몬은 NFS에서 데이터를 읽으려고 시도하므로 일반적으로 다음에 완료되는 옵션 no_root_squash 없이 NFS 공유가 생성되므로 문제가 발생합니다. 아이디어는 NFS가 로컬(클라이언트의) 루트 사용자를 0이 아닌 ID를 가진 익명 사용자에게 매핑한다는 것입니다. 그리고 로컬 루트 사용자는 NFS 공유 파일 및 디렉터리에 액세스할 수 없으며 해당 권한은 루트로 제한됩니다. 따라서 OP는 두 가지 방법으로 이 문제를 해결할 수 있습니다.
- 전 세계가 파일을 읽을 수 있도록 파일 및 디렉터리에 대한 권한을 변경합니다.
또는
- NFS 공유에 no_root_squash를 추가하고 NFS 서버를 다시 시작합니다.
답변2
@muru 및 @RomeoNinov 덕분에 NFS 서버를 약간 조정하여 인증서를 사용할 수 있었습니다. 내 Pastebins는 6개월 동안만 유효하므로 여기에 구성을 게시하겠습니다.
네트워크에서 인증서를 공유하기 위해 여전히 NFS를 사용하고 있습니다.
수도나미/etc/export내 구성을 열었고 마지막 줄에서 다음을 사용한 다음 끝에 추가
/etc/letsencrypt IP-OF-REVERSE-PROXY (rw,sync,no_subtree_check)
했습니다 .no_root_squash
(rw,sync,no_subtree_check,no_root_squash)
모든 서버를 다시 시작한 후 서비스가 실행 중인지 확인했습니다. 브라우저에 들어가서 로컬 IP를 확인하여 인증서를 확인했는데 모든 것이 정확했습니다.
나도 나중에 편집해서 읽었 /etc/hosts.allow
어/etc/hosts.deny
뿌리 없는 호박내 NFS 공유에 대한 액세스를 제한하고, 3개의 서버가 내 공유에 액세스하도록 허용하고, SFTP 및 SSH를 통해 내 관리 PC 원격 액세스를 허용하고, 그 밖의 모든 것을 거부합니다.호스트.NFS 허용