Nextcloud in Docker를 집에 구축 01장_인증서

Nextcloud in Docker를 집에 구축



Nextcloud는 Docker를 사용하여 가정의 NAPT 아래에 구축됩니다.
몇 장까지 갈지 모르겠습니다. 끝내면 좋다.
  • (이번) Nextcloud in Docker를 집에 구축 01장_인증서
  • 내부 DNS 서버 구축
  • 역방향 프록시 구축
  • Nextcloud 구축

  • 전제 조건



    필요한 것


  • Linux 서버
  • Docker 및 Docker Compose
  • 기사의 내용에 대해 보충 할 수있는 지식

  • 네트워크 환경



    네트워크 환경
    [GLOBAL]----[ONU]--[Router (192.168.1.1)]
                              ├-[Server (192.168.1.2)]
                              └-[Client (192.168.1.3)]
    

    도메인(DDNS)



    우선 도메인을 잡자. MyD 응 S. JP 즐겁게.
    글쎄, 별로 설명하지 않을 것이다.Domain* : (FQDN)라고 쓰는 곳에 자신이 원하는 도메인을 넣는다.
    A 레코드의 호스트 이름에 와일드 카드를 설정하면 호스트 이름에 관계없이 집에 문의 할 수 있습니다.
    그런 다음 내부 DNS 서버로 해결됩니다.



    여기에서는. var_mydomain_var.mydns.jp를 얻었다고 가정합니다.

    MyDNS는 Dynamic DNS를 제공하므로 정기적으로 현재 Global IP를 가르쳐야합니다.
    다음 스크립트를 Server cron에 등록합니다.

    IP 주소 보고
    #!/bin/sh
    
    curl https://MyDNSのユーザID:MyDNSのユーザパスワード@www.mydns.jp/login.html 1 > /dev/null
    

    얻을 수 있는지 여부는ping var_mydomain_var.mydns.jpping hoge.var_mydomain_var.mydns.jp에서
    에서 확인한다.

    증명서



    이번 주제이다.
    Let's Encrypt의 DNS-01에서 습득한다.

    DNS-01 방식



    DNS의 TXT 레코드를 사용하여 인증서를 발행합니다 (잘 모르겠습니다).
    기존의 HTTPS 방식과 같이 Port443을 해제하지 않아도 좋다.

    MyDNS + Let's Encrypt + DNS-01



    검색 할 PHP 스크립트가 공개이므로 Docker 컨테이너화합니다.

    컨테이너화



    컨테이너화 된 것이 여기입니다.
    Clone은 테이블과 같이 실행시 인수와 txtedit.conf 파일을 편집합니다.


    변수
    설정할 내용


    YOURDOMAIN
    var_mydomain_var.mydns.jp

    YOURMAILADDR
    인증서에 사용할 이메일 주소

    MYDNSJP_MASTERID
    MyDNS ID

    MYDNSJP_MASTERPWD
    MyDNS 비밀번호

    MYDNSJP_DOMAIN
    var_mydomain_var.mydns.jp



    doc_direct_edit의 run
    docker run --rm \
        -e YOURDOMAIN=$YOURDOMAIN \
        -e YOURMAILADDR=$YOURMAILADDR \
        -v $(pwd)/etc/letsencrypt:/etc/letsencrypt \
        doc_direct_edit
    

    txtedit.conf
    <?php
        $MYDNSJP_URL       = 'https://www.mydns.jp/directedit.html';
        $MYDNSJP_MASTERID  = '';
        $MYDNSJP_MASTERPWD = '';
        $MYDNSJP_DOMAIN = '';
    ?>
    

    인증서 취득



    무서운 사람은 Dockerfile 내에서 certbot 런타임dry-run 옵션으로 빌드하여 테스트 할 수 있습니다.

    Dockerfile을 빌드하고 실행하면 그 자리에 etc 디렉토리가 생깁니다../etc/letsencrypt/live/var_mydomain_var.mydns.jp/ 아래에 인증서가 있습니다.

    etc하하
    etc/
    └── letsencrypt
        ├── accounts
        │   └── acme-v02.api.letsencrypt.org
        │       └── directory
        │           └── hogehogehoge
        │               ├── meta.json
        │               ├── private_key.json
        │               └── regr.json
        ├── archive
        │   └── var_mydomain_var.mydns.jp
        │       ├── cert1.pem
        │       ├── chain1.pem
        │       ├── fullchain1.pem
        │       └── privkey1.pem
        ├── csr
        │   └── 0000_csr-certbot.pem
        ├── keys
        │   └── 0000_key-certbot.pem
        ├── live
        │   ├── var_mydomain_var.mydns.jp
        │   │   ├── cert.pem -> ../../archive/var_mydomain_var.mydns.jp/cert1.pem
        │   │   ├── chain.pem -> ../../archive/var_mydomain_var.mydns.jp/chain1.pem
        │   │   ├── fullchain.pem -> ../../archive/var_mydomain_var.mydns.jp/fullchain1.pem
        │   │   ├── privkey.pem -> ../../archive/var_mydomain_var.mydns.jp/privkey1.pem
        │   │   └── README
        │   └── README
        ├── renewal
        │   └── var_mydomain_var.mydns.jp.conf
        └── renewal-hooks
            ├── deploy
            ├── post
            └── pre
    
    16 directories, 16 files
    

    정리와 앞으로



    인증서는 DNS-01 방법으로 얻을 수 있습니다.
    앞으로는 다음과 같다.
    1. 내부 DNS 서버 구축
    2. 리버스 프록시 구축
    3. Nextcloud 구축

    멀리?

    좋은 웹페이지 즐겨찾기