[CentOS7] SSL 연결 설정

소개



마지막 기사 에서는 보안의 설정을 했다.
이번에는 같은 서버에 도메인을 대고 Let's Encrypt 을 사용해 SSL 접속한다.

환경


  • CentOS Linux release 7.6.1810 (Core)
  • Apache/2.4.6 (CentOS)

  • 전제 조건


  • 이미 도메인을 취득하고 있습니다

  • 도메인의 DNS 설정



    이름닷컴으로 도메인을 취득했기 때문에,
    DNS 설정의 작업은 이름닷컴에 로그인하여 실시한다.
  • "도메인 설정> DNS 관련 기능 설정> DNS 레코드 설정 사용"화면을 엽니 다.
  • 호스트 이름에 하위 도메인을 입력하고 VALUE에 VPS의 IP를 입력하십시오.
  • 추가 버튼을 누릅니다.



  • 레코드를 설정하여 도메인이 VPS를 향하도록 합니다.
    지정한 도메인에 웹 브라우저로 액세스하여 다음 화면이 나오면 설정 완료



    설정이 반영되기까지 약간의 시간이 걸릴 수 있습니다.

    Let's Encrypt



    공식 : ぇtps://ぇつぇ crypt. rg/
    일본어 포털: ぇtps://ぇつぇ crypt. jp/

    무료로 SSL 인증서를 발급받을 수 있습니다.
    그러나 인증서의 유효기간은 90일

    설치



    여기 참조
    ぇtps://ぇつぇ crypt. jp / 우사게 / 인 s 100 rt 보트 t. HTML#Sento S7

    우선 SSH 연결
    다른 작업을 위해 root로 로그인했기 때문에 sudo를 붙이지 않고 실행했습니다.
    # yum install epel-release
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     :
    省略
     :
    Package epel-release-7-11.noarch already installed and latest version
    Nothing to do
    

    EPEL의 설치는 이미 되어 있었던 것 같다.
    그런 다음 python-certbot-apach 설치
    # yum install certbot python-certbot-apache
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     :
    省略
     :
    Complete!
    

    인증서 취득



    여기 참조
    ぇtps://ぇつぇ crypt. jp / 토끼 / # 게 t 세르 치후 카테

    명령 실행


    # certbot certonly --webroot -w /var/www/html -d www.domain.com
    

    명령을 실행하면 다양한 듣기
    우선 이메일 주소를 듣는다.
     :
    省略
     :
    Enter email address (used for urgent renewal and security notices) (Enter 'c' to
    cancel): 
    

    이메일 주소를 입력합니다.

    다음으로 Let's Encrypt 이용약관에 동의
     :
    省略
     :
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Please read the Terms of Service at
    https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
    agree in order to register with the ACME server at
    https://acme-v02.api.letsencrypt.org/directory
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    (A)gree/(C)ancel: 
    

    문제가 없으면 a를 입력하십시오.
    Electronic Frontier와 이메일 주소를 공유 할 수 있습니까? 라고 듣는다.yes 로 하면 뉴스 메일등이 도착하는 것 같다.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Would you be willing to share your email address with the Electronic Frontier
    Foundation, a founding partner of the Let's Encrypt project and the non-profit
    organization that develops Certbot? We'd like to send you email about our work
    encrypting the web, EFF news, campaigns, and ways to support digital freedom.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    (Y)es/(N)o: 
    

    문제가 없으면 y를 입력하십시오. 이메일 주소 사용 거부라면 n
    Starting new HTTPS connection (1): supporters.eff.org
     :
    省略
     :
    IMPORTANT NOTES:
     - Congratulations! Your certificate and chain have been saved at:
     :
    省略(1)
     :
     - Your account credentials have been saved in your Certbot
       configuration directory at /etc/letsencrypt. You should make a
       secure backup of this folder now. This configuration directory will
       also contain certificates and private keys obtained by Certbot so
       making regular backups of this folder is ideal.
     - If you like Certbot, please consider supporting our work by:
    
       Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
       Donating to EFF:                    https://eff.org/donate-le
    

    이것으로 인증서 취득 완료
    위의 "생략 (1)"부분에 작성된 인증서의 위치가 작성되어 있어야합니다.

    여기까지 와서, certonly 옵션은 붙지 않아서 좋았던 것이 아닐까 깨닫는다.certonly 옵션은, 증명서 취득만을 실시해, Web 서버 설정은 스스로 실시하는 옵션.

    덕분에 아직 웹 서버 설정을 할 수 없습니다.
    다시 certbot 명령을 입력하십시오.

    또한 도메인 이름을 들었습니다.
    # certbot
    Saving debug log to /var/log/letsencrypt/letsencrypt.log
     :
    省略
     :
    No names were found in your configuration files. Please enter in your domain
    name(s) (comma and/or space separated)  (Enter 'c' to cancel): 
    

    도메인 이름을 입력합니다.

    이미 존재하는 인증서로 다시 설치할까요? 듣는다 (아마)
    Cert not yet due for renewal
     :
    省略
     :
    What would you like to do?
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1: Attempt to reinstall this existing certificate
    2: Renew & replace the cert (limit ~5 per 7 days)
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 
    

    아까 만든 증명서로 좋기 때문에 1 를 입력한다.

    가상 호스트 설정
     :
    省略
     :
    Which virtual host would you like to choose?
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1: ssl.conf                       |                       | HTTPS | Enabled
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Press 1 [enter] to confirm the selection (press 'c' to cancel): 
    
    1 를 입력합니다.

    HTTP로 연결되면 HTTPS로 연결하도록 리디렉션하시겠습니까? (아마)
     :
    省略
     :
    Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1: No redirect - Make no further changes to the webserver configuration.
    2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
    new sites, or if you're confident your site works on HTTPS. You can undo this
    change by editing your web server's configuration.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 
    

    리디렉션하고 싶기 때문에 2 를 입력한다.
     :
    省略
     :
    IMPORTANT NOTES:
     - Congratulations! Your certificate and chain have been saved at:
     :
    省略
     :
     - If you like Certbot, please consider supporting our work by:
    
       Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
       Donating to EFF:                    https://eff.org/donate-le
    

    이것으로 완료!

    지정한 도메인에 HTTPS로 액세스해 본다.


    CRON으로 자동 업데이트



    90일마다 갱신하는 것은 귀찮기 때문에, CRON에서 자동 갱신한다.

    우선 CRON이 움직이고 있는지를 체크한다.
    # systemctl status crond
    * crond.service - Command Scheduler
       Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
       Active: active (running) since Sun 2018-12-16 16:36:44 JST; 8min ago
     :
    省略
     :
    
    active(running)가 되어 있는지 확인
    # crontab -u root -e
    
    certbot renew 명령은 유효기간의 나머지가 30일 미만인 인증서가 갱신된다는 것
    매월 1일 4시에 certbot renew 실행
    00 04 01 * * certbot renew && systemctl restart httpd
    

    설정 완료

    요약



    다음에 webmin 설치 하고 설정하고 싶습니다.

    좋은 웹페이지 즐겨찾기