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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

6441閲覧

Let's Encryptに登録したメールアドレスを確認する方法と変更する方法おご教授いただきたいです。

YUTAYUTA

総合スコア12

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

2クリップ

投稿2020/04/16 04:12

編集2020/04/17 09:02

前提・実現したいこと

もともとは、Let's Encryptの証明書の更新をcronで1日2回行い、頻度が高いためメールは送信せず、標準出力と標準エラー出力はログに保存し、もし更新が出来ていない場合はLet's Encryptに登録したメールアドレスに届くメールで対応したかったため、Let's Encryptに登録したメールアドレスを確認したかったのですが、その確認が出来ていません。
登録に関してはメールアドレスが確認できないため、正常に登録できているかが不明です。

発生している問題・エラーメッセージ・試したこと

https://qiita.com/noraworld/items/3d492a50ee43dfd3ae5a#tldr
こちらのサイトを参考にしました。

こちらのサイトではコマンドの中に「acme-v01」と記載がありますが、そのまま実行すると

No such file or directory

というエラーが表示されました。

サーバーを契約した後にCertbotで証明書をインストールした際に「acme-v02」という記載があったため、「acme-v02」に置き換えて

sudo ls /etc/letsencrypt/accounts/acme-v02.api.letsencrypt.org/directory

とすることでハッシュ値は取得できたのですが、そのハッシュ値を用いて

sudo cat /etc/letsencrypt/accounts/acme-v02.api.letsencrypt.org/directory/ハッシュ値/regr.json

と実行すると

{"body": {}, "uri": "https://acme-v02.api.letsencrypt.org/acme/acct/68730246"}

と表示され、本来あるはずの"contact"の記載が無く、記載されているURLをブラウザのURL欄にペーストして手動で開くと

{ "type": "urn:ietf:params:acme:error:malformed", "detail": "Method not allowed", "status": 405 }

という内容が表示されます。

上記のエラーで検索してもメールアドレスが記載されていないというケースが見当たらず困っています。

補足情報(FW/ツールのバージョンなど)

sudo certbot certificates

と実行して

Expiry Date: 2020-07-15 01:48:53+00:00 (VALID: 89 days)

と表示されることからWebサイトのhttps化は出来ていると思われます。

さくらのVPSを利用しています。

CentOS Linux release 7.7.1908
Apache 2.4.6
certbot 1.3.0

初心者故足りない情報などがあるかと思いますが、何卒ご教授の程よろしくお願いいたします。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/04/16 04:48

405 だから 取得方法(GET/POST等)が間違えてる
YUTAYUTA

2020/04/16 05:49

ご教授いただきありがとうございます。 "status": 405 certbot というキーワードで検索したところ以下のページを見つけました。 https://community.letsencrypt.org/t/the-server-experienced-an-internal-error-status-405/104549/10 こちらによると、ポート443(HTTPS)が解放されていないことが原因とされているため、自分の環境を再度確認しました。 さくらのVPSではパケットフィルタは無効にしており sudo firewall-cmd --list-all と実行すると services: dhcpv6-client http https ssh と表示されているため、解放は出来ているようです。 他に思い当たるところとすると sudo vim /etc/httpd/conf/httpd.conf で以前編集した <VirtualHost *:80> ServerAdmin メールアドレス DocumentRoot /var/www/html ServerName ドメイン名 RewriteEngine on RewriteCond %{SERVER_NAME} =ドメイン名 RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost> こちらになりますが、こちらの記述がおかしいのでしょうか。 とりあえずこちらについて調べてみます。 ありがとうございました。
YUTAYUTA

2020/04/17 08:59

早とちりしてしまいすみませんでした。 https://acme-v02.api.letsencrypt.org/acme/acct/68730246 こちらのURLにアクセスしたのはハッシュ値を用いて取得した {"body": {}, "uri": "https://acme-v02.api.letsencrypt.org/acme/acct/68730246"} こちらに記載があり、メールアドレスが表示されていない原因がわかるかと思い、ブラウザのURL欄にペーストして手動で開きました。 こちらの記載が抜けており申し訳ございませんでした。
退会済みユーザー

退会済みユーザー

2020/04/17 09:47

ブラウザのアドレスバーってことは GETだから curl コマンドで 認証情報付きでPOSTを送信しないとだめなんじゃないの? メールアドレス取得ができるなら認証必須だとおもうし
YUTAYUTA

2020/05/02 14:35

ご連絡が遅れ申し訳ございません。 ご教授いただいた"curl コマンドで認証情報付きでPOSTを送信"についてWebで検索をし、以下のサイト https://qiita.com/shtnkgm/items/45b4cd274fa813d29539 https://qiita.com/yasuhiroki/items/a569d3371a66e365316f を参考にこちらのコマンドをrootユーザーで実行してみました curl -u root -X POST https://acme-v02.api.letsencrypt.org/acme/acct/68730246 結果は以下の内容でした Enter host password for user 'root':ここでrootユーザーのパスワードを入力しました。 { "type": "urn:ietf:params:acme:error:malformed", "detail": "missing Content-Length header", "status": 411 } 「"type":」は前回と同じ内容ですが、「"detail":」が変化しているので、こちらについて検索してみましたが、海外のサイトを含めていくつか見てみましたが参考になりそうなサイトは見つかりませんでした。 そもそも本来であれば sudo cat /etc/letsencrypt/accounts/acme-v02.api.letsencrypt.org/directory/ハッシュ値/regr.json を実行した後の出力の"contact"に記載されているはずなので、URLを開くより前で何かが間違えていると思われるのですが、それもわからず再度行き詰ってしまいました。 再度お知恵を拝借いただけますと幸いです。 よろしくお願いいたします。
YUTAYUTA

2020/06/09 17:58

こちらの質問については解決いたしました。 ご教授いただきありがとうございました。
guest

回答1

0

ベストアンサー

certbot 0.26.0以降regr.jsonにデータが保存されなくなったため、上記のQitaの方法で確認できなくなってます。

別途Pythonのプログラムを作成して確認することができます。

まず、ius communityやepelからインストールなり、ソースからコンパイルするなりでPython 3をインストールしてください。
インストール後、pipから

pip install acme

acmeモジュールをインストールしてください。

そして以下のPyファイルを作成します。

#!/usr/bin/env python from acme.client import ClientV2 from acme.client import ClientNetwork from acme import messages import josepy as jose from glob import glob with open(glob('/etc/letsencrypt/accounts/acme-v02.api.letsencrypt.org/directory/*/private_key.json')[0], 'rb') as f: key = jose.JWK.json_loads(f.read()) with open(glob('/etc/letsencrypt/accounts/acme-v02.api.letsencrypt.org/directory/*/regr.json')[0], 'r') as f: regr = messages.RegistrationResource.json_loads(f.read()) net = ClientNetwork(key) directory = messages.Directory.from_json(net.get("https://acme-v02.api.letsencrypt.org/directory").json()) client = ClientV2(directory, net) client.net.account = regr resp = client._post(regr.uri, None) print(resp.json()['contact'])

あとはpythonコマンドでpyファイルを実行すれば、登録されたemailアドレスを確認できます。

投稿2020/06/08 06:10

Mashiro

総合スコア654

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

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

YUTAYUTA

2020/06/09 00:50

詳細なご回答ありがとうございます。 早速ご教授いただいた内容で確認してみます。 結果が判明次第再度ご連絡させていただきます。
YUTAYUTA

2020/06/09 17:54

ご教授いただいたpyファイルを実行したところ [u'mailto:登録したメールアドレス'] という形で確認できました。 散々調べても不明な事だったため大変助かりました。 ありがとうございました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問