Amazon มี Linux ใหม่ที่เรียกว่า "Amazon Linux 2"

เมื่อฉันพยายามรับ certbot ไป ....

 wget https://dl.eff.org/certbot-auto
 chmod a+x certbot-auto
 ./certbot-auto

ให้ข้อผิดพลาดนี้

Sorry, I don't know how to bootstrap Certbot on your operating system!

You will need to install OS dependencies, configure virtualenv, and run pip install manually.
Please see https://letsencrypt.readthedocs.org/en/latest/contributing.html#prerequisites for more info.

จากนั้นฉันก็ลอง:

yum install pip
yum install python-pip
pip install cryptography 
pip install certbot
yum install python-urllib3
yum install augeas
/usr/bin/certbot

และฉันได้รับข้อความนี้

Traceback (most recent call last):
  File "/usr/bin/certbot", line 7, in <module>
    from certbot.main import main
  File "/usr/lib/python2.7/site-packages/certbot/main.py", line 19, in <module>
    from certbot import client
  File "/usr/lib/python2.7/site-packages/certbot/client.py", line 11, in <module>
    from acme import client as acme_client
  File "/usr/lib/python2.7/site-packages/acme/client.py", line 34, in <module>
    import urllib3.contrib.pyopenssl  # pylint: disable=import-error
  File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 50, in <module>
    from ndg.httpsclient.ssl_peer_verification import SUBJ_ALT_NAME_SUPPORT
ImportError: No module named ndg.httpsclient.ssl_peer_verification

ฉันไม่แน่ใจว่าจะไปจากที่นี่ ข้อเสนอแนะใด ๆ ที่จะได้รับการชื่นชมอย่างมาก!

answer

ฉันประสบปัญหานี้เช่นกันเนื่องจาก Amazon Linux 2 ไม่มีepel-releaseในที่เก็บ แต่ฉันพบว่าคุณสามารถติดตั้งแพ็คเกจ EPEL RPM ได้เอง จากนั้นคุณจะสามารถติดตั้งcertbotหรือcertbot-nginxจากที่นั่นได้

  • ดาวน์โหลด RPM

    curl -O http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    
  • แล้วติดตั้ง

    sudo yum install epel-release-latest-7.noarch.rpm
    
  • ตอนนี้คุณสามารถติดตั้ง certbot

    sudo yum install certbot
    
  • แล้วรันตามปกติ

    sudo certbot
    

ตรวจสอบหน้า certbotสำหรับรายละเอียดการกำหนดค่าหลังจากนั้น

แทนที่จะใช้ Certbot คุณสามารถใช้Acmeซึ่งใช้ได้ผลและได้รับการจัดทำเป็นเอกสารอย่างดี ฉันมีการสอนเกี่ยวกับการตั้งค่า Let 's เข้ารหัสใน Amazon ลินุกซ์ที่นี่

การกำหนดค่า Nginx

Let's Encrypt จำเป็นต้องโทรหาเซิร์ฟเวอร์เพื่อยืนยันคำขอก่อนที่จะออกใบรับรอง Acmetool สามารถใช้เว็บเซิร์ฟเวอร์ในตัวหรือเว็บเซิร์ฟเวอร์ภายนอก นี่คือการกำหนดค่า Nginx ของฉันซึ่งอยู่ข้างบล็อกเซิร์ฟเวอร์ที่ปลอดภัยซึ่งให้บริการส่วนที่เหลือของไซต์

# This server directly serves ACME / certificate redirects. All other requests are forwarded the https version of the page
server {
  listen 80;
  server_name example.com;
  access_log /var/log/nginx/access.log main;

  # Let's Encrypt certificates with Acmetool
    location /.well-known/acme-challenge/ {
    alias /var/www/.well-known/acme-challenge/;
  }

  location / {
    return 301 https://www.photographerstechsupport.com$request_uri;
  }
}

โฟลเดอร์ Nginx

mkdir -p /var/www/.well-known/acme-challenge
chmod -R user:www-data /var/www/acme-challenge/*
find /var/www/acme-challenge/ -type d -exec chmod 755 {} \;
vi /var/www/acme-challenge/.well-known/acme-challenge/text.html   (add "hello world" or similar)

ติดตั้ง Acme

sudo -i   (this is run as root)
cd /opt
wget https://github.com/hlandau/acme/releases/download/v0.0.62/acmetool-v0.0.62-linux_386.tar.gz (NB check for newer versions here)
tar -xzf acmetool-v0.0.62-linux_386.tar.gz
cd acmetool-v0.0.62-linux_386/bin
cp ./acmetool /usr/local/bin
/usr/local/bin/acmetool quickstart

ในการเริ่มต้นอย่างรวดเร็วให้ป้อนสิ่งนี้เป็น webroot . ของคุณ

/var/www/.well-known/acme-challenge/

ขอใบรับรอง

/usr/local/bin/acmetool want example.com www.example.com

การแก้ไขปัญหา #1

acmetool --xlog.severity=debug > /tmp/dump 2>&1 want example.com www.example.com
fgrep -v fdb: /tmp/dump | fgrep -v storageops: > /tmp/dumpout

ฉันมีเคล็ดลับการแก้ไขปัญหาอื่นๆ ในบทความบล็อกของฉัน