apache2 + lets'encrypt

stretchで。何も入っていない所から構築してみる。の前にちゃんと利用したいドメインというかコモンネームでAレコードで引けるようにしといてくださいね。

# apt install apache2
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  apache2-bin apache2-data apache2-utils bzip2 file libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libexpat1 libffi6 libgdbm3 libgmp10 libgnutls30
  libhogweed4 libicu57 libldap-2.4-2 libldap-common liblua5.2-0 libmagic-mgc libmagic1 libnettle6 libnghttp2-14 libp11-kit0 libperl5.24 libsasl2-2 libsasl2-modules
  libsasl2-modules-db libsqlite3-0 libssl1.1 libtasn1-6 libxml2 mime-support openssl perl perl-modules-5.24 rename sgml-base ssl-cert xml-core xz-utils
提案パッケージ:
  www-browser apache2-doc apache2-suexec-pristine | apache2-suexec-custom bzip2-doc gnutls-bin libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal
  libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql ca-certificates perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make sgml-base-doc
  openssl-blacklist debhelper
以下のパッケージが新たにインストールされます:
  apache2 apache2-bin apache2-data apache2-utils bzip2 file libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libexpat1 libffi6 libgdbm3 libgmp10
  libgnutls30 libhogweed4 libicu57 libldap-2.4-2 libldap-common liblua5.2-0 libmagic-mgc libmagic1 libnettle6 libnghttp2-14 libp11-kit0 libperl5.24 libsasl2-2
  libsasl2-modules libsasl2-modules-db libsqlite3-0 libssl1.1 libtasn1-6 libxml2 mime-support openssl perl perl-modules-5.24 rename sgml-base ssl-cert xml-core
  xz-utils
アップグレード: 0 個、新規インストール: 42 個、削除: 0 個、保留: 0 個。
23.1 MB のアーカイブを取得する必要があります。
この操作後に追加で 98.8 MB のディスク容量が消費されます。
続行しますか? [Y/n]

certbot

いれよう

# apt install certbot
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  ca-certificates libpython-stdlib libpython2.7-minimal libpython2.7-stdlib libreadline7 python python-acme python-certbot python-cffi-backend python-chardet
  python-configargparse python-configobj python-cryptography python-dnspython python-enum34 python-funcsigs python-idna python-ipaddress python-minimal python-mock
  python-openssl python-parsedatetime python-pbr python-pkg-resources python-psutil python-pyasn1 python-pyicu python-requests python-rfc3339 python-setuptools
  python-six python-tz python-urllib3 python-zope.component python-zope.event python-zope.hookable python-zope.interface python2.7 python2.7-minimal readline-common
提案パッケージ:
  python-certbot-apache python-certbot-doc python-doc python-tk python-acme-doc python-configobj-doc python-cryptography-doc python-cryptography-vectors
  python-enum34-doc python-funcsigs-doc python-mock-doc python-openssl-doc python-openssl-dbg python-psutil-doc doc-base python-socks python-setuptools-doc
  python-ntlm python2.7-doc binutils binfmt-support readline-doc
以下のパッケージが新たにインストールされます:
  ca-certificates certbot libpython-stdlib libpython2.7-minimal libpython2.7-stdlib libreadline7 python python-acme python-certbot python-cffi-backend
  python-chardet python-configargparse python-configobj python-cryptography python-dnspython python-enum34 python-funcsigs python-idna python-ipaddress
  python-minimal python-mock python-openssl python-parsedatetime python-pbr python-pkg-resources python-psutil python-pyasn1 python-pyicu python-requests
  python-rfc3339 python-setuptools python-six python-tz python-urllib3 python-zope.component python-zope.event python-zope.hookable python-zope.interface python2.7
  python2.7-minimal readline-common
アップグレード: 0 個、新規インストール: 41 個、削除: 0 個、保留: 0 個。
6,859 kB のアーカイブを取得する必要があります。
この操作後に追加で 29.2 MB のディスク容量が消費されます。
続行しますか? [Y/n]

仕掛ける

# certbot certonly --agree-tos --non-interactive -d <YOUR_COMMON_NAME> --webroot -w /var/www/html --email catatsumurin@gmail.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for <YOUR_COMMON_NAME>
Using the webroot path /var/www/html for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/<YOUR_COMMON_NAME>/fullchain.pem. Your cert
   will expire on 2018-05-06. To obtain a new or tweaked version of
   this certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   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

<YOUR_COMMON_NAME>のところは自分のドメインというかSSLでいえばCNにしといてください。なんで、ちゃんと設定しないと通らないのと、あと基本port80に向かってチェックがくるのでその辺もありますな。

設定

一式が手にはいったので、あとはapacheの設定だけ。

sslモジュールを有効化して

# a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
  systemctl restart apache2

再起動

# systemctl restart apache2

あとはとりあえず動かしたいなら

/etc/apache2/sites-available/default-ssl.conf

                SSLCertificateKeyFile /etc/letsencrypt/live/<YOUR_COMMON_NAME>/privkey.pem
                SSLCertificateFile /etc/letsencrypt/live/<YOUR_COMMON_NAME>/fullchain.pem

site-avaibaleの下の活性化を忘れないように(よく忘れる)

# a2ensite default-ssl.conf
Enabling site default-ssl.

で先刻の再起動かreloadかどっちかすれば動く

let's encryptの更新

# certbot renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log
...
-------------------------------------------------------------------------------
The program nginx (process ID 27391) is already listening on TCP port 443. This
will prevent us from binding to that port. Please stop the nginx program

となり失敗する。この場合当然、nginxを止めてからrenewすればよい

Congratulations, all renewals succeeded. The following certs have been renewed:

従ってscriptで更新する場合は止めて→renewして→開始

みたいなのを書けばいいんじゃないかな。autoとかもあるみたいだけど…

ssl/apache2/letsencrypt.txt · 最終更新: 2018/04/17 12:58 by admin
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0