私のサイトにアクセスするユーザーが、安全でないHTTPによって宿泊が拒否されることがないようにSSL接続を確立しようとしています。デフォルトでは、HTTPからHTTPSに移行しようとしています。
私は多くのマニュアルとチュートリアルを研究しており、私がしたことの鍵は次のとおりです。
まず、以下から Letcrypt をダウンロードしました。
mkdir ~/letsencrypt
cd ~/letsencrypt
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --help
その後、nginx設定に移動して修正しました。
/etc/nginx/sites-available/myptoject
server {
listen 83;
server_name domainname.tk;
location / {
include uwsgi_params;
uwsgi_pass unix:/var/www/flaskapp/myproject.sock;
}
}
~/letsencrypt/letsencrypt で以下を実行します。
./letsencrypt-auto --apache -d domainname.tk
すべてが順調に進んだ後、好みのプロトコル(HTTPとHTTPS、私のEメール)を入力しましたが、最終的に次のメッセージが表示されました。
Plugins selected: Authenticator nginx, Installer nginx
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for domainname.tk
Using default address 80 for authentication.
Waiting for verification...
Cleaning up challenges
Failed authorization procedure. domainname.tk (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authoriza tion :: Invalid response from http://domainname.tk/.well-known/acme-challenge/qD7pzA8UtegkcXIhoOQUvCM92eG5hrahtYOLAYJAujw: "< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<titl"
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: domainname.tk
Type: unauthorized
Detail: Invalid response from
http://domainname.tk/.well-known/acme-challenge/qD7pzA8UtegkcXIhoOQUvCM92eG5hrahtYOLAYJAujw:
"<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<titl"
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.
このエラーは、名前の間に競合がある場合に発生しますが(今すぐ検索できる限り)、ここでは命名に問題がないことがわかります。どちらの場合もdomainname.tk
。
私はフラスコ、Python、nginx、uwsgiを使用していますが、作業ディレクトリ(/var/www/flaskapp/)は次のようになります。
drwxrwxrwx 7 john john 4096 фев 10 19:57 .
drwxr-xr-x 4 john john 4096 фев 6 21:55 ..
-rwxrwxr-x 1 john john 61939 янв 26 04:50 certbot-auto
drwxrwxr-x 8 john john 4096 фев 10 11:55 .git
-rw-rw-r-- 1 john john 150 фев 9 19:18 home.html
-rw-r--r-- 1 root root 186 фев 8 21:46 myproject.ini
-rw-rw-r-- 1 john john 772 фев 10 17:55 myproject.py
-rw-r--r-- 1 root root 12288 фев 10 16:27 .myproject.py.swo
srw-rw---- 1 john www-data 0 фев 10 18:35 myproject.sock
drwxr-xr-x 2 john www-data 4096 фев 10 17:55 __pycache__
-rw-rw-r-- 1 john john 104 фев 9 18:18 requirements.txt
drwxrwxr-x 2 john john 4096 фев 9 19:18 templates
drwxrwxrwx 5 john john 4096 фев 8 21:44 venv
drwxrwxr-x 3 john john 4096 фев 10 19:58 .well-known
-rw-r--r-- 1 root root 68 фев 8 21:45 wsgi.py
.well-known/acme-challenge ディレクトリを手動で作成しました。
だからここで何が間違っているのかわかりません。正常に動作しているようですが、SSLキーを設定しようとするとエラーが発生します。誰でも助けることができますか?
オペレーティングシステムはUbuntu 16.04 LTSです。
どんな助けでも大変感謝します!
編集する
ちなみに私が行くとどうなるかhttp://domainname.tk/.well-known/acme-challenge/qD7pzA8UtegkcXIhoOQUvCM92eG5hrahtYOLAYJAujw
私のホームページだけが見え、他のものは何も見えません。 HTMLコード:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>domainname.tk</title>
<meta name="description" content="domainname.tk">
<meta name="keywords" content="domainname.tk">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-23441223-3']);
_gaq.push(['_setDomainName', 'none']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);
(function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<frameset rows="*">
<frame frameborder=0 src="http://myipaddress:83/" name="dot_tk_frame_content" scrolling="auto" noresize>
</frameset>
</html>