Let 's 암호 화 인증서 설치

13485 단어 수송 하 다.
도 메 인 네 임 인증서 및 Nginx / Apache 인증서 설정 암호 화 신청
기초 지식 을 암호 화 합 시다.
  • 암호 화 는 인증 기구 (인증서 발급 기구 = CA)
  • 입 니 다.
  • HTTPS 를 사용 하려 면 인증 기관 에서 발급 해 야 하 는 전자 인증서
  • 우리 로 하여 금 다른 인증 기구 와 의 차 이 를 암호 화하 게 한다 (또는 판매 점 이 라 고 한다).
  • 무료, Let 's Encrypt 제공 기한 90 일 무료 전자 인증서
  • 도구 certbot 제공 전자 인증서 파일 자동 생 성
  • 전자 인증 서 를 자동 으로 생 성하 기 위해 ACME 프로 토 콜 을 만 들 었 습 니 다.
  • 자동 인증서 관리 환경 = ACME, 자동 인증 관리 환경 프로 토 콜
  • 협의 초안 은 IETF
  • 에 제출 되 었 다.
  • ACME 협의의 기본 적 인 사고방식 은:
  • 서버 에 일회 성 랜 덤 특징 데이터 생 성 (랜 덤 수)
  • 그리고 Let 's Encrypt 서버 를 통 해 이 데 이 터 를 확인 합 니 다
  • 인증서 발급 성공 확인
  • 두 가지 방식 이 있 는데 HTTP 와 DNS 는 보통 전자
  • 를 사용한다.

  • certbot 공식 설치 문서
  • 범 도 메 인 이름 인증서 가 져 오기
    Certbot 설치
    공식 소스 에서 최신 버 전 certbot 를 설치 합 니 다.
    wget https://dl.eff.org/certbot-auto
    chmod a+x ./certbot-auto

    초기 화
    ./certbot-auto

    인증서 가 져 오기
    현재 대부분의 국내 DNS 서비스 업 체 가 API 가 지원 하 는 목록 에 없 기 때문에 아래 는 수 동 으로 DNS 인증 을 하고 아래 명령 의 *.minirplus.com 만 자신의 도 메 인 이름 으로 바 꾸 면 된다.
    ./certbot-auto certonly --manual -d *.minirplus.com --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory

    !도 메 인 이름 주의  minirplus.com  분석 기록 은 A 방식 으로 현재 실행 중인 명령 의 서버 IP 를 가리 키 고 CNAME 기록 을 사용 할 수 없습니다. 그렇지 않 으 면 오 류 를 보고 할 수 있 습 니 다. 오 류 를 보고 하 는 정 보 는 다음 과 같 습 니 다.
    IMPORTANT NOTES:
     - The following errors were reported by the server:
     
       Domain: minirplus.com
       Type:   connection
       Detail: DNS problem: SERVFAIL looking up TXT for
       _acme-challenge.minirplus.com
     
       To fix these errors, please make sure that your domain name was
       entered correctly and the DNS A/AAAA record(s) for that domain
       contain(s) the right IP address. Additionally, please check that
       your computer has a publicly routable IP address and that no
       firewalls are preventing the server from communicating with the
       client. If you're using the webroot plugin, you should also verify
       that you are serving files from the webroot path you provided.

    이 명령 을 실행 하면 인증서 만 료 알림 을 받 을 수 있 도록 요청 합 니 다.
    Enter email address (used for urgent renewal and security notices) (Enter 'c' to
    cancel):

    이 어 광고 가 나 올 것 이다. 대 의 는 고객 의 메 일 을 수집 하여 스 폰 서 에 게 주 는 것 이다. Y 또는 N 모두 가능 하 다.
    -------------------------------------------------------------------------------
    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 EFF and
    our work to encrypt the web, protect its users and defend digital rights.
    -------------------------------------------------------------------------------
    (Y)es/(N)o:

    이 어 중요 한 부분 은 DNS 에 접두사 _acme-challenge 를 추가 한 도 메 인 이름 TXT 을 기록 하고 중간 에 표 시 된 랜 덤 코드 xVloe7V1kMEd2ZlOLlUxv-HltYfTDaMhrrwKjFU47DU 를 기록 했다.
    -------------------------------------------------------------------------------
    Please deploy a DNS TXT record under the name
    _acme-challenge.minirplus.com with the following value:
     
    xVloe7V1kMEd2ZlOLlUxv-HltYfTDaMhrrwKjFU47DU
     
    Before continuing, verify the record is deployed.
    -------------------------------------------------------------------------------
    Press Enter to Continue

    현재 도 메 인 이름 의 루트 기록 을 확보 합 니 다.  minirplus.com  A 을 위해 현재 서버 IP 를 가리 키 고 있 습 니 다. (이것 은 원래 문제 가 되 지 않 습 니 다. 외국 의 서비스 업 체 의 DNS 루트 도 메 인 이름 은 갑 기록 만 추가 할 수 있 지만 국내의 DNS POD 는 더욱 유연 하고 CNAME 기록 을 추가 할 수 있 기 때문에 인증 할 때 문제 가 발생 합 니 다)
    리 턴 에 따라 인증 하 다.
    잠시 기다 리 고 다음 과 같은 정보 가 나 오 면 인증 성공 을 설명 합 니 다.
    신청 작업 이 성공 하면 인터페이스 에서 인증서 의 저장 경로 와 인증서 의 만 료 시간 (90 일) 을 출력 합 니 다.
    IMPORTANT NOTES:
     - Congratulations! Your certificate and chain have been saved at:
       /etc/letsencrypt/live/minirplus.com/fullchain.pem
       Your key file has been saved at:
       /etc/letsencrypt/live/minirplus.com/privkey.pem
       Your cert will expire on 2018-06-19. To obtain a new or tweaked
       version of this certificate in the future, simply run certbot-auto
       again. To non-interactively renew *all* of your certificates, run
       "certbot-auto renew"
     - 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

    인증서 의 저장 경로
    (여기 example. com 을 예 로 들 면)
    인증서 생 성 중 /etc/letsencrypt 폴 더 를 만 듭 니 다. 인증서 파일 은 기본적으로 /etc/letsencrypt/live/example.com 폴 더 에 저 장 됩 니 다. 이 중 example.com 첫 번 째 도 메 인 이름 에서 추출 한 것 은 example.com 폴 더 에 4 개의 파일 ./cert.pem ./chain.pem ./fullchain.pem ./privkey.pem 을 포함 합 니 다.
  • cert. pem 도 메 인 네 임 인증서
  • chain. pem 루트 인증서 및 중간 인증서
  • fullchain. pem 은 cert. pem 과 chain. pem 이 합 쳐 진 것
  • prickey. pem 인증서 개인
  • 2048 비트 Diffie - Hellman 파일 만 들 기 (nginx 는 기본적으로 1024 비트 Diffie - Hellman 을 사용 하여 키 교환 을 합 니 다. 보안 이 너무 낮 습 니 다)
    openssl dhparam -out /etc/letsencrypt/live/dhparams.pem 2048

    nginx TSL 설정 (http 를 https 로 강제로 변경)
    (여기 example. com 을 예 로 들 면)
    우선 http 프로 토 콜 301 을 https 프로 토 콜 로 재 설정 합 니 다.
    server {
          
      listen 80;
      server_name example.com www.example.com;
      return 301 https://example.com$request_uri;
    }

    nginx https 관련 설정
    (여기 example. com 을 예 로 들 면)
    server {
          
        listen 443 ssl;
        server_name example.com www.example.com;
        
        # 配置站点证书文件地址
        ssl_certificate      /etc/letsencrypt/live/example.com/fullchain.pem;
        # 配置证书私钥
        ssl_certificate_key  /etc/letsencrypt/live/example.com/privkey.pem;
        
        # 配置 Diffie-Hellman 交换算法文件地址
        ssl_dhparam          /etc/letsencrypt/live/dhparams.pem;
        
        # 配置服务器可使用的加密算法
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
     
        # 指定服务器密码算法在优先于客户端密码算法时,使用 SSLv3 和 TLS 协议
        ssl_prefer_server_ciphers  on;
        
        # ssl 版本 可用 SSLv2,SSLv3,TLSv1,TLSv1.1,TLSv1.2 
        # ie6 只支持 SSLv2,SSLv3 但是存在安全问题, 故不支持
        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
        
        # 配置 TLS 握手后生成的 session 缓存空间大小 1m 大约能存储 4000 个 session
        ssl_session_cache          shared:SSL:50m;
        # session 超时时间
        ssl_session_timeout        1d;
        
        # 负载均衡时使用 此处暂时关闭 详情见 https://imququ.com/post/optimize-tls-handshake.html 
        # 1.5.9 及以上支持
        ssl_session_tickets off;
        
        # 浏览器可能会在建立 TLS 连接时在线验证证书有效性,从而阻塞 TLS 握手,拖慢整体速度。OCSP stapling 是一种优化措施,服务端通过它可以在证书链中封装证书颁发机构的 OCSP(Online Certificate Status Protocol)响应,从而让浏览器跳过在线查询。服务端获取 OCSP 一方面更快(因为服务端一般有更好的网络环境),另一方面可以更好地缓存 以上内容来自 https://imququ.com/post/my-nginx-conf-for-wpo.html
        # 1.3.7 及以上支持
        ssl_stapling               on;
        ssl_stapling_verify        on;
        # 根证书 + 中间证书
        ssl_trusted_certificate    /etc/letsencrypt/live/example.com/fullchain.pem;
        
        # HSTS 可以告诉浏览器,在指定的 max-age 内,始终通过 HTTPS 访问该域名。即使用户自己输入 HTTP 的地址,或者点击了 HTTP 链接,浏览器也会在本地替换为 HTTPS 再发送请求 相关配置见 https://imququ.com/post/sth-about-switch-to-https.html
        add_header Strict-Transport-Security max-age=60;
        
        # 在此填写原本 http 协议中的配置
    }
     

    이상 설정 이 완료 되면 nginx 를 다시 시작 하면 https 전환 을 완료 할 수 있 습 니 다 (권한 문제 가 발생 하면 sudo 를 사용 하 십시오)
    service nginx restart

    혹은
    sudo systemctl reload nginx

    인증서 업데이트
    certbot 에서 생 성 된 인증 서 는 90 일의 기한 이 있 습 니 다.다음 명령 을 사용 하면 연장 이 가능 합 니 다. 연장 성공 후 서버 가 필요 합 니 다.
    ./certbot-auto renew

    이 명령 은 만 료 될 인증서 만 업데이트 할 수 있 습 니 다. 강제 업 데 이 트 를 원한 다 면 --force-renewal 인 자 를 추가 할 수 있 습 니 다.
    아파 치 설정 파일 수정
    들 어 가 는 / etc / apache 2 의 / 사 이 트 를 사용 할 수 있 습 니 다. 범 도 메 인 이름 설정 파일 (여 기 는 000 - default. conf 를 예 로 들 면) 을 수정 하고 SSL 설정 을 추가 합 니 다. 아래 설정 에 있 는 SSL 인증서 주 소 를 이전에 성공 적 으로 가 져 온 인증서 주소 로 바 꿉 니 다.
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/vps
        ServerSignature Off
        
            Options -Indexes
        
     
        
            ServerAdmin webmaster@localhost
            DocumentRoot /var/www/vps
            ServerSignature Off
            
                Options -Indexes
            
            SSLEngine on
            SSLCertificateFile /etc/letsencrypt/live/minirplus.com/fullchain.pem;
            SSLCertificateKeyFile /etc/letsencrypt/live/minirplus.com/privkey.pem
        

    , https://xVloe7V1kMEd2ZlOLlUxv.minirplus.com

    HTTPS 。

    1. , , 。
    2. HTTPS 。

     

    :https://www.cnblogs.com/hxqxiaoqi/p/10948735.html

    좋은 웹페이지 즐겨찾기