回答編集履歴

5

Dockerfile例追記

2023/05/08 23:28

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -12,6 +12,15 @@
12
12
  Windows内で起動したプロセスはブラウザと同じネットワークホストにあるので「127.0.0.1」で接続可能です。
13
13
 
14
14
  Goのコードの実行時に「-addr :18888」というオプションをつけて(Dockerfileを修正して)お試しください。
15
+ あと、/goはGOROOTなのでアプリコードを置くのは推奨されません。別の場所にアプリを置くとよいでしょう。
16
+
17
+ ```Dockerfile
18
+ #FROM golang:apline
19
+ FROM golang:1.16.3-alpine
20
+ WORKDIR /app
21
+ ADD . /app
22
+ CMD ["go", "run", "main.go", "-addr", ":18888"]
23
+ ```
15
24
 
16
25
  ## おすすめの開発方法
17
26
 

4

理由補足

2023/05/08 00:19

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -15,6 +15,15 @@
15
15
 
16
16
  ## おすすめの開発方法
17
17
 
18
+ オレオレ証明書の運用でブラウザテストする時、いくつか警告を黙らせる必要があったり、
19
+ 簡易CAを起こしてルート証明書をスマホやPCにインストールという手法はマルウェアの手法に近いので
20
+ 乱用するとご自身の環境の安全にも良くないです。
21
+ ブラウザが検証するサーバー証明書というのはしかるべきオーソリティに発行してもらったものを使うのが原則と考えましょう。
22
+ オレオレ証明書は独自の通信経路の安全確保などに使うくらいにとどめておくとよいでしょう。
23
+
24
+ オススメなのは外部の中継サービスであるngrokやcloudflared tunnelを利用する方法です。
25
+ 外部のURLへのアクセスを手元のアドレスに中継してくれるという仕掛けです。
26
+
18
27
  Goのサーバーはhttpで開発しておき、cloudflared というツールをインストール、
19
28
  ```
20
29
  > cloudflared tunnel -url http://localhost:18888

3

フォーマットミスfix

2023/05/07 10:33

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -24,7 +24,7 @@
24
24
  2023-05-07T10:25:12Z INF +--------------------------------------------------------------------------------------------+
25
25
  ```
26
26
  という表示が出たら、表示にあるURLをブラウザで開きます。
27
- ```
27
+
28
28
  この場合毎回URLが変化してしまうけれど、有効な証明書が生きている状態でテストできます。
29
29
  Web技術の一部は有効な証明書がないと実行できないというものもありますので、この方法をよく使っています。
30
30
  また、自分の管理下にあるドメインの場合はLet’sEncryptを使います。

2

参考にオススメの方法を追記

2023/05/07 10:31

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -13,3 +13,19 @@
13
13
 
14
14
  Goのコードの実行時に「-addr :18888」というオプションをつけて(Dockerfileを修正して)お試しください。
15
15
 
16
+ ## おすすめの開発方法
17
+
18
+ Goのサーバーはhttpで開発しておき、cloudflared というツールをインストール、
19
+ ```
20
+ > cloudflared tunnel -url http://localhost:18888
21
+ 2023-05-07T10:25:12Z INF +--------------------------------------------------------------------------------------------+
22
+ 2023-05-07T10:25:12Z INF | Your quick Tunnel has been created! Visit it at (it may take some time to be reachable): |
23
+ 2023-05-07T10:25:12Z INF | https://xxxxxx-xxxx-xxx-xxxxxxxxxx.trycloudflare.com |
24
+ 2023-05-07T10:25:12Z INF +--------------------------------------------------------------------------------------------+
25
+ ```
26
+ という表示が出たら、表示にあるURLをブラウザで開きます。
27
+ ```
28
+ この場合毎回URLが変化してしまうけれど、有効な証明書が生きている状態でテストできます。
29
+ Web技術の一部は有効な証明書がないと実行できないというものもありますので、この方法をよく使っています。
30
+ また、自分の管理下にあるドメインの場合はLet’sEncryptを使います。
31
+ もっとも楽なのはクラウドにデプロイしてクラウドの証明書発行サービスを利用することですね。

1

追記

2023/05/07 10:23

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -2,3 +2,14 @@
2
2
  もしくは質問に情報が不足しているかもしれません。
3
3
 
4
4
  Windowsのコマンドプロンプトから起動した場合に証明書をどの様に設定しましたか?
5
+
6
+ ## 追記
7
+
8
+ TLSによるコードを確認してみました。
9
+
10
+ わかった問題点はDockerコンテナ内のリッスンポートが「127.0.0.1:18888」になっているのでDockerコンテナ外部からの接続に応答できないということです。
11
+ Dockerコンテナ内は別のネットワークに属しているので、ホストのブラウザとローカルアドレスで疎通できません。
12
+ Windows内で起動したプロセスはブラウザと同じネットワークホストにあるので「127.0.0.1」で接続可能です。
13
+
14
+ Goのコードの実行時に「-addr :18888」というオプションをつけて(Dockerfileを修正して)お試しください。
15
+