質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

3890閲覧

AWSのEC2 Linux上でLet's Encryptを導入したのですがうまくいきません

EMADURANDAL

総合スコア41

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2016/05/10 12:20

お世話になります。

表題の通りの現象で困っております。
具体的には、EC2上のCentOS6.xでLet's EncryptでSSLを導入しようとしたのですが、
導入後にブラウザでアクセスすると

イメージ説明

というSSL証明書の妥当性検証でエラー扱いになってしまいます。

どうも、画像中のSubjectとIssuerの部分がEC2のprivate DNS名になっているのが気になります。

一度、ここで「もしや」と思い、調べてみたらCentOSの/etc/sysconfig/networkのhostnameがこのprivate DNS名のままになっていました。
そこで、取得したドメイン名に書き換えてEC2を再起動し、hostnameコマンドでちゃんとホスト名が取得したドメイン名に変わっているのを確認した上で、もう一度Let's Encryptで証明書を取得したのですが、結果は同じになりました。

念のため、3度目の挑戦として、サブドメイン部分を変更して(もちろんhostnameも更新し)、新規にLet's Encryptで証明書をまた取得してみたのですが、それでもまた結果は同じでした。

どこかミスっているのだと思いますが、わからずにおります。

お詳しい方、ご教示いただけますと幸いです。

ちなみに、サーバーはApache 2.2.x系です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ブラウザ側に Let's Encrypt のルート証明書が入っていない、もしくは、サーバー側に中間証明書が設定されていないため、証明書チェインの検証に失敗しているのだと思います。

CentOS 上で curl コマンドでエラーなくコンテンツが表示できるか確認ください。

$ curl --cacert isrgrootx1.pem https://ホスト名/

isrgrootx1.pem は Let's Encrypt のルート証明書。
ホスト名は /etc/hosts で自ホストの IPアドレスに名前解決できるようにしておく。

投稿2016/05/10 16:02

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

EMADURANDAL

2016/05/11 12:48

以下のような結果になりました。 curl: (60) Peer certificate cannot be authenticated with known CA certificates More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). If the default bundle file isn't adequate, you can specify an alternate file using the --cacert option. If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL). If you'd like to turn off curl's verification of the certificate, use the -k (or --insecure) option. 引き続き調べているのですが、わからないままです…。
EMADURANDAL

2016/05/11 13:03

さらにopensslコマンドを試してみたら、以下の通りの出力となりました。 # openssl s_client -connect xxxxxxxxxxxxx:443 -CAfile /etc/letsencrypt/live/xxxxxxxxxxxxx/cert.pem CONNECTED(00000003) depth=0 C = --, ST = SomeState, L = SomeCity, O = SomeOrganization, OU = SomeOrganizationalUnit, CN = ip-10-1-1-10.ap-northeast-1.compute.internal, emailAddress = root@ip-10-1-1-10.ap-northeast-1.compute.internal verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 C = --, ST = SomeState, L = SomeCity, O = SomeOrganization, OU = SomeOrganizationalUnit, CN = ip-10-1-1-10.ap-northeast-1.compute.internal, emailAddress = root@ip-10-1-1-10.ap-northeast-1.compute.internal verify error:num=21:unable to verify the first certificate verify return:1 --- Certificate chain 0 s:/C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=SomeOrganizationalUnit/CN=ip-10-1-1-10.ap-northeast-1.compute.internal/emailAddress=root@ip-10-1-1-10.ap-northeast-1.compute.internal i:/C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=SomeOrganizationalUnit/CN=ip-10-1-1-10.ap-northeast-1.compute.internal/emailAddress=root@ip-10-1-1-10.ap-northeast-1.compute.internal 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 i:/O=Digital Signature Trust Co./CN=DST Root CA X3 --- Server certificate -----BEGIN CERTIFICATE----- MIIEajCCA1KgAwIBAgICH10wDQYJKoZIhvcNAQELBQAwgekxCzAJBgNVBAYTAi0t MRIwEAYDVQQIDAlTb21lU3RhdGUxETAPBgNVBAcMCFNvbWVDaXR5MRkwFwYDVQQK DBBTb21lT3JnYW5pemF0aW9uMR8wHQYDVQQLDBZTb21lT3JnYW5pemF0aW9uYWxV bml0MTUwMwYDVQQDDCxpcC0xMC0xLTEtMTAuYXAtbm9ydGhlYXN0LTEuY29tcHV0 ZS5pbnRlcm5hbDFAMD4GCSqGSIb3DQEJARYxcm9vdEBpcC0xMC0xLTEtMTAuYXAt bm9ydGhlYXN0LTEuY29tcHV0ZS5pbnRlcm5hbDAeFw0xNjA1MDQwOTUyNDBaFw0x NzA1MDQwOTUyNDBaMIHpMQswCQYDVQQGEwItLTESMBAGA1UECAwJU29tZVN0YXRl MREwDwYDVQQHDAhTb21lQ2l0eTEZMBcGA1UECgwQU29tZU9yZ2FuaXphdGlvbjEf MB0GA1UECwwWU29tZU9yZ2FuaXphdGlvbmFsVW5pdDE1MDMGA1UEAwwsaXAtMTAt MS0xLTEwLmFwLW5vcnRoZWFzdC0xLmNvbXB1dGUuaW50ZXJuYWwxQDA+BgkqhkiG 9w0BCQEWMXJvb3RAaXAtMTAtMS0xLTEwLmFwLW5vcnRoZWFzdC0xLmNvbXB1dGUu aW50ZXJuYWwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9DviKPsr4 c4SplxC37nqBHGconuZoQ6IBU7kjRByNg9z3WbS9ohSREIWY3Y1whOJJkir8SE0t NGxDVgibRpANHVGmyMa5OZffudGLtxnjBXzzRdEXbN1Wr7vjY144lZENXDSiRL4P vYMzW0cLoTGU3+fg5OinccgcEzzMCNE74kMeGpocKLixVUQ+eR9NtuCPAI4zcL8Q K+UnUFuLkOY50oEZ/PIFB4W4Fwe9URJKu3KkKL5ERDILK/tcGzwEgxoAhuaPa05b QMPY2KyhIyTyI77DRDKreSysWBDl/RgiyuxYi1mnpihdpoL2lqoKACr2V+3G8scg +KiNB+nhi05vAgMBAAGjGjAYMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMA0GCSqG SIb3DQEBCwUAA4IBAQCQA+xqmcB2Z2PqiM+t17LUfyuAszrgSqYUffK+dmtYdrAM fvTT87QI3neQ4fQCNeHQYBxAD/81r/UTxGZMyTHct2YS0/iKU+Ev7bFqmL5uSsT3 m+eh9FCqUDiuZS1vfHOsfeZ9Lt3We1LK03VzWipzJHzoukYTit8ON5DM2aqoxH3M 61j2/d407QiPvCkgUJgzmGwugdveVDU4575xFnOHjmW9MJRsYK7N+2duWBHekyGd WBz2arr6Lr/Bh5KJIm5YKGypy5fI42q2sKyzbjR8yycw1xwF2QT29oi5cQznzHEe vCmc8Aq1FhvInocGpyxo7gLOPfSW8wqeRMH8GvLK -----END CERTIFICATE----- subject=/C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=SomeOrganizationalUnit/CN=ip-10-1-1-10.ap-northeast-1.compute.internal/emailAddress=root@ip-10-1-1-10.ap-northeast-1.compute.internal issuer=/C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=SomeOrganizationalUnit/CN=ip-10-1-1-10.ap-northeast-1.compute.internal/emailAddress=root@ip-10-1-1-10.ap-northeast-1.compute.internal --- No client certificate CA names sent Server Temp Key: ECDH, prime256v1, 256 bits --- SSL handshake has read 3002 bytes and written 373 bytes --- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384 Session-ID: 0812A314FF8CC3A2B502718BDF8D3815CDD14A904CD17FD942BAE86269533E0F Session-ID-ctx: Master-Key: B9DE4DE1514983E7FFA44E82664DD258D2FAB41CEEC813C8052701CBCF0D5981DA62EE0FC931116D11CBA1CDD9189039 Key-Arg : None Krb5 Principal: None PSK identity: None PSK identity hint: None TLS session ticket lifetime hint: 300 (seconds) TLS session ticket: 0000 - 12 fa 29 ad aa 03 2e 4c-0e df df ed 0c 0c 86 1e ..)....L........ 0010 - 07 a7 9e f0 3c e2 4a 97-e5 a0 46 7d 89 d7 22 42 ....<.J...F}.."B 0020 - 98 c5 8b 5a 62 10 7f d5-00 0a 44 60 3d f6 60 b5 ...Zb.....D`=.`. 0030 - d1 ff 9f 44 a3 86 92 01-d4 24 2d a1 b4 0c cc 72 ...D.....$-....r 0040 - 84 7c 07 f7 22 d7 fa 35-a5 df 39 c8 37 b0 9e 05 .|.."..5..9.7... 0050 - 11 03 9f 60 d8 d8 46 a7-ed 43 f3 20 da a9 69 82 ...`..F..C. ..i. 0060 - 49 49 4d 0f 1d 51 2d d4-d7 84 6a 77 7a ee 27 09 IIM..Q-...jwz.'. 0070 - 73 0e 22 ce ab d0 df ea-de 5c e3 3e 66 ce c6 75 s."......\.>f..u 0080 - 16 f9 23 fb 42 17 b9 70-9b 53 28 64 a2 49 4d 43 ..#.B..p.S(d.IMC 0090 - f2 e4 2c b8 88 c0 05 64-2b e9 1f 93 22 71 72 24 ..,....d+..."qr$ 00a0 - e4 87 96 ce b3 41 44 c5-53 79 7c 6b 0a aa b3 98 .....AD.Sy|k.... 00b0 - 28 b2 c0 25 82 ae 3d d0-6e 86 ae 85 24 fa e8 24 (..%..=.n...$..$ Start Time: 1462971556 Timeout : 300 (sec) Verify return code: 21 (unable to verify the first certificate)
TaichiYanagiya

2016/05/11 16:34

s_client の結果ですが、1つ目のサーバー証明書の Issuer が「/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3」(中間証明書)となるべきところが、「/C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=SomeOrganizationalUnit/CN=ip-10-1-1-10.ap-northeast-1.compute.internal/emailAddress=root@ip-10-1-1-10.ap-northeast-1.compute.internal」となっていますね。 なぜそうなっているのかはわかりません。
guest

0

自己解決

すみません。自己解決しました。

letsencryptやEC2の性質の問題ではなく、
単に私のhttpdの設定にミスがありました。

kalturaという動画配信サーバーを運用しようとしており、それのインストールでssl.confとは別のzzzkaltura.ssl.confというものができたので、zzzkaltura.ssl.confにletsencryptで取得した証明書などの設定をしていたのですが、

最初からあるssl.confをよく見たら
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
などの自己署名と思われるcertificateFileが指定されていました。

どうやら、zzzkaltura.ssl.confではなくssl.confの設定が優先されてしまっていたようです。

ssl.confをssl.conf.backupなどにとりあえずリネームして無効にしたら、うまくいきました。

という次第でして、私の完全なケアレスミスでした。
大変申し訳ありません。

TaichiYanagiyaさま、親切に対応頂きまして。誠にありがとうございました。お礼申し上げます。

投稿2016/05/28 06:01

EMADURANDAL

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問