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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

SSL

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

2回答

721閲覧

Apacheなどのサーバーを使っていない場合のcertbotの設定方法

orangee

総合スコア1

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

SSL

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2022/05/15 11:23

編集2022/05/15 12:09

環境・前提条件

・raspberry pi zero w
・raspbian os
・Express.jsを使ってサーバーを立てています
・Apacheなどは使っていません

やりたいこと

certbotを使ってSSL証明書を設定したい

#やったこと・試したこと
「Certbot 証明書 設定方法」や「certbot apache 使わずに設定」と調べましたが有用な記事が見つかりませんでした
変に触って今の環境を壊すのは嫌なので証明書発行のみしました

発生している問題・エラー

Apacheなどを使っていないサーバーでのSSL証明書設定が分からないです

どなたかご享受頂けると幸いです

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

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

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

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

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

hentaiman

2022/05/15 11:53

> 自分で調べられる範囲では調べました これを詳細に書かないとどこで詰まったのか誰も分かりませんね
YT0014

2022/05/15 12:04

「Express.js 証明書」の検索程度でも、有用そうな情報が見つかりますので、ご確認ください。
orangee

2022/05/15 12:07

@hentaimankochin さん ご指摘ありがとうございます。 学校の課題の合間で書いたのできちんと確認できてませんでした。 修正しますのでよろしくお願いします
orangee

2022/05/15 12:10

@YT0014 さん 分かりました! 1度見て見ます。 それでも分からなかったらどうやるのかを教えていただいてもよろしいですか?
hentaiman

2022/05/15 12:23

なるほど、追記見た感じだと何も試してないって事ですね certbotを設定したいのかsslを設定したいのかだが、発行&設定を自動でやって欲しいって話なら無理です 発行だけして設定自分でやるんなら問題ないでしょう
otn

2022/05/15 13:16

> Express.jsを使ってサーバーを立てています Express.jsは使ったこと無いので回答出来ませんが、検索キーワードが的外れです。 「Express.js SSL設定」とか「Express.js certbot」とかでしょう。
orangee

2022/05/16 07:45

わかりました! 調べてみます!
guest

回答2

0

ベストアンサー

HTTPサーバに必要なのは
「HTTPS証明書」であってCertbotではありません。
こいつはHTTPS証明書というファイルを生成してくれるだけのツールです。

後は生成されたHTTPS証明書のファイルを使って
Express.jsで勝手に組み込むだけです。

具体的な流れは下記の記事を見て実践した方が早いでしょう。
参考記事: Nodejs(Express) で Let’s Encrypt の無料HTTPS証明書を使う!HTTPからHTTPSは10行以下で書き換え可能だ


【おまけ】リバースプロキシを使う案もあるぞ

HTTPSというのはLet’s Encryptなどを利用して認証局がドメインに対して認証してもらう必要があります。
なのでローカルマシンでの開発したい時は邪魔。
Chrome等で開くと「この証明書は認証されてないけど大丈夫?」←さっさとページを表示しろ。
本番環境ではコードを切り替える?テストが出来ないんだよなぁ、本番環境でテストする?

ApacheやNginx等のWebサーバの既製品を使ってHTTPS通信を実現するという選択肢があります。

ApacheやNginxにはHTTPリクエストを受け取った後、
別のサーバに通信を受け流して結果を受け取り、あたかも自分が生成したかのように結果を返すという手段が存在します。
こういう仕組みを「リバースプロキシ」と呼びます。

今だとNginxを使うのが一般的でしょうか。
Nginxを80番ポート、443番ポートに繋ぎ込んでおき、
自作のExpress.jsのコンテンツを3000番ポート(別の数字でも可能)で稼働させておき
Nginxのサーバにリクエストが送られてきたら、localhost:3000に受け流すように組んで完成です。
(この時3000番ポートは直接通信されないようファイアウォールやルーティング等の設定で外に出ないようにしておく)

投稿2022/05/16 09:13

miyabi-sun

総合スコア21158

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

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

orangee

2022/05/18 09:13 編集

sudo certbot certonly を実行したのですが Requesting a certificate for tiny-url.gq Performing the following challenges: http-01 challenge for tiny-url.gq Waiting for verification... Challenge failed for domain tiny-url.gq http-01 challenge for tiny-url.gq Cleaning up challenges Some challenges have failed. IMPORTANT NOTES: - The following errors were reported by the server: Domain: tiny-url.gq Type: connection Detail: 119.10.188.228: Fetching http://tiny-url.gq/.well-known/acme-challenge/ah3wZ1Fqc73PiORdjwHD-CCqP_pfeS2kYuGvvzEv_qI: Connection refused 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. Additionally, please check that your computer has a publicly routable IP address and that no firewalls are preventing the server from communicating with the client. If you're using the webroot plugin, you should also verify that you are serving files from the webroot path you provided. と表示されて失敗しました。 この場合どうすればいいですか? DNSはちゃんとサーバーのIPです
guest

0

Apache 等の Web サーバーを用いずに certbot の認証をしたいということでしょうか。

具体的な環境が不明なので、正確な回答は難しいと思います。
お使いの環境で、DNS検証は使えますか?
使えるなら DNS 検証を使えば良いと思います。

自分で調べられる範囲では調べました

何を調べられたのかわかりませんが、公式ドキュメントに 自動でSSL処理が取得できない際に マニュアルでSSL証明書を取得する方法について記載があります。

環境が不明なのでコマンド例は記載できませんが、ドキュメントの Manual

If you’d like to obtain a certificate running certbot on a machine other than your target webserver or perform the steps for domain validation yourself, you can use the manual plugin. While hidden from the UI, you can use the plugin to obtain a certificate by specifying certonly and --manual on the command line.

とあるように コマンドラインから

certbot certonly --manual 検証方法オプション -d example.com その他必要なオプション

のように実行して、certbot を半自動で実行して、画面に表示される検証コードを「検証方法オプション」で指定した方法で、 Web ルートディレクトリのファイルや DNS レコードに「検証コード」を登録する作業を手作業で行ってドメイン検証コードの登録部分を人手で補助することで、SSL証明書を取得できるのではないでしょうか。

投稿2022/05/15 12:16

CHERRY

総合スコア25171

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

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

orangee

2022/05/16 07:45

なるほど..... DNS検証は使えるかわからないですが一度やってみたいと思います。回答ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問