certbotを使用して自分のWebサイトで証明書を暗号化しようとしましたが、接続しようとするとYawsがエラーSSL accept failed: timeout
を返します)。興味深いことに、example.com
を私のマシン上のhostsファイルのサーバのローカルIPアドレスにリダイレクトしてexample.com:8080
に接続すると動作しますが、ホストファイルを編集しないでexample.com
に接続したり、4G以上の電話機から接続すると動作しません。ここに私のウェブサーバの設定ファイルは、(それがconf.d
でのみ設定ファイルです)です:SSLを使用するとSSLにエラーが発生する "SSL accept failed:timeout"
<server www.example.com>
port = 8080
listen = 0.0.0.0
docroot = /usr/share/yaws
<ssl>
keyfile = /etc/letsencrypt/live/example.com/privkey.pem
certfile = /etc/letsencrypt/live/example.com/fullchain.pem
</ssl>
</server>
私はキーファイルと証明書が両方のyawsのユーザーによって読み取り可能であることを確認しました。次のキーファイルには、次のものが含まれているREADME
次のとおりです。
`privkey.pem` : the private key for your certificate.
`fullchain.pem`: the certificate file used in most server software.
`chain.pem` : used for OCSP stapling in Nginx >=1.3.7.
`cert.pem` : will break many server configurations, and should not be used
without reading further documentation (see link below).
We recommend not moving these files. For more information, see the Certbot
User Guide at https://certbot.eff.org/docs/using.html#where-are-my-certificates.
だから私は、私は右のファイルを(他のものが私にbadmatch
と{tls_alert,"decrypt error"}
ようなエラーを与えた)を使用してきた比較的確信しています。私はURLの前にhttps://
と書くのと同じような小さなことを試みましたが、SSLを使わずにサーバーが動作しているときに問題は解決しませんでした。私のサーバで動作しているErlangのバージョンはErlang/OTP 19です。また、それが不明な場合、ドメインは実際にはexample.com
ではありません。
また、example.com
は、cnameでexamplecom.duckdns.org
にリダイレクトされます(問題がある場合)。
UPDATE:私のサーバーがポート8080
に聞いていた
、それはデフォルトのHTTPSポートはポート443
あるとき、https接続のために、外部ポート80
から転送されました。私の他の間違いは、https://example.com
の代わりにhttp://example.com
に接続していました。外部ポート443
を内部ポート8443
に転送し、yawsをポート8443
でリッスンするように設定します。
私はポートフォワーディングを行っていますが、問題が解決されています。私はオリジナルの投稿に詳細を編集しました。 – user1792131