解決策が見つかりました:Apacheでリバースプロキシを上げ、Let's Encryptが自動的に証明書を発行するようにします。 そして、ポートをhttpからhttpsにリダイレクトしながら、静かにファイアウォールで公開します。
私たちは、純粋なDebian GNU / Linux 8(jessie)を持っていることを基礎としています。 カットの下の詳細。
さあ、行きましょう。
aptitude install -y build-essential aptitude install -y libapache2-mod-proxy-html libxml2-dev aptitude install -y apache2
次に、次のモジュールをアクティブにします。
a2enmod proxy a2enmod proxy_http a2enmod proxy_ajp a2enmod rewrite a2enmod deflate a2enmod headers a2enmod proxy_balancer a2enmod proxy_html a2enmod proxy_ftp a2enmod proxy_connect a2enmod ssl
Apacheを再起動します。
service apache2 restart
ここでは、最初の失敗が待っています。Apachには適切な操作のためのmod_xml2encモジュールがありませんが、! このモジュールはJessieでは機能しません。次のコマンドを順番に作成する必要があります。
aptitude install apache2-prefork-dev libxml2 libxml2-dev apache2-dev mkdir ~/modbuild/ && cd ~/modbuild/ wget http://apache.webthing.com/svn/apache/filters/mod_xml2enc.c wget http://apache.webthing.com/svn/apache/filters/mod_xml2enc.h apxs2 -aic -I/usr/include/libxml2 ./mod_xml2enc.c cd ~ rm -rfd ~/modbuild/ service apache2 restart
その後、すべてが順調になり、モジュールが完成しました。 さらに進む)
HTTPSサイトを公開したいので、Let's Encryptをインストールするまで、サイトの自己署名証明書を作成し、次のコマンドを入力する必要があります。
mkdir /etc/apache2/ssl cd /etc/apache2/ssl openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
構成ファイルを作成し、わかりやすい名前で名前を付ける必要があります。
touch /etc/apache2/sites-available/sambi4.conf
そして、このようなファイルを与えます:
<VirtualHost *:80> ServerName sambi4.ru Redirect permanent / https://sambi4.ru/ # https </VirtualHost> <VirtualHost *:443> SSLEngine On SSLProxyEngine On ProxyRequests Off ProxyPreserveHost On ProxyVia full SSLCertificateFile /etc/apache2/ssl/server.crt # SSLCertificateKeyFile /etc/apache2/ssl/server.key # ProxyHTMLInterp On ProxyHTMLExtended On <proxy *> Order deny,allow Allow from all </proxy> ProxyPass / https://192.168.199.78/ #IP . ProxyPassReverse / https://192.168.199.78/ #IP . ServerName sambi4.ru ServerAdmin sambi4@sambi4.ru # email DocumentRoot "/var/www/html" # , . </VirtualHost>
作成が完了したら、サイトを含めることを忘れないでください。
a2ensite /etc/apache2/sites-available/sambi4.conf
Apacheを再起動します。
service apache2 restart
すべての手順が完了したら、Apache2でリバースプロキシを構成しました。Let's Encryptのセットアップを開始できます。
すべての無料の証明書のうち、Let's Encryptのみが存続しましたが、その特徴は、証明書が3か月間発行されることです。
証明書を入れて、認証期間の終わりに自動的に発行する必要があります。
echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee /etc/apt/sources.list.d/backports.list
後:
aptitude update
それでは、Let's Encryptを設定しましょう。
aptitude install -y python-certbot-apache -t jessie-backports
インストールプロセスを待って、証明書の発行を試みます。
certbot --apache
そして、ここで失敗が待っています:
エラー:letsencrypt_apache.configurator:サーバー名またはエイリアスの仮想ホストが存在しません:sambi4.ru。 仮想ホストが選択されていません。 Apache構成でサーバー名を指定してください
これは、リポジトリに(0.10.2を書いている時点で)古いバージョンがまだあり、エラーが観察されるという事実によるものです。 つまり、Pythonスクリプトのエラーです。 解決策は、いつものように簡単です。
certbotの最新バージョンをダウンロードします。
git clone https://github.com/certbot/certbot.git
その後、パスに沿って進みます。
cd /usr/lib/python2.7/dist-packages
フォルダーを削除(またはより良いバックアップ):
アクメ
certbot
certbot_apache
そして、新しいリリースからファイルをコピーします。
cp /root/certbot/certbot /usr/lib/python2.7/dist-packages/ cp /root/certbot/acme/acme/ /usr/lib/python2.7/dist-packages/ cp /root/certbot/certbot-apache/certbot_apache/ /usr/lib/python2.7/dist-packages/
これで、証明書の発行プロセスを静かに開始できます。
certbot --apache
質問やすべてに答えます!
おめでとうございます、証明書を発行しました。次に、証明書自動更新スクリプトを追加する必要があります。 暗号化して証明書を発行する期間はわずか90日間です(これを覚えています)。
すべてがシンプルです。 cronに次の行を追加する必要があります。
30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
つまり 入力します:
crontab -e
そして、私たちの行を追加してください(次の用語に行くようにしてください、そうでなければ保存されません)
そして、すべて、他のリソースで無限の時間を繰り返します。
頑張って、管理者!