質問編集履歴

5

参考に改修したソースを追記

2018/03/05 02:30

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -219,3 +219,63 @@
219
219
  golang echo の http/2 に書いてありました。
220
220
 
221
221
  https://echo.labstack.com/cookbook/http2
222
+
223
+
224
+
225
+ ソースコードは以下のようになります。
226
+
227
+ ```
228
+
229
+ package main
230
+
231
+
232
+
233
+ import (
234
+
235
+ "net/http"
236
+
237
+
238
+
239
+ "github.com/labstack/echo"
240
+
241
+ "github.com/labstack/echo/middleware"
242
+
243
+ "golang.org/x/crypto/acme/autocert"
244
+
245
+ )
246
+
247
+
248
+
249
+ func main() {
250
+
251
+ e := echo.New()
252
+
253
+ // e.AutoTLSManager.HostPolicy = autocert.HostWhitelist("<DOMAIN>")
254
+
255
+ // Cache certificates
256
+
257
+ // e.AutoTLSManager.Cache = autocert.DirCache(".cache") ←不要
258
+
259
+ println(e.AutoTLSManager.Cache)
260
+
261
+ e.Use(middleware.Recover())
262
+
263
+ e.Use(middleware.Logger())
264
+
265
+ e.GET("/", func(c echo.Context) error {
266
+
267
+ return c.HTML(http.StatusOK, `
268
+
269
+ <h1>Welcome to Echo!</h1>
270
+
271
+ <h3>TLS certificates automatically installed from Let's Encrypt :)</h3>
272
+
273
+ `)
274
+
275
+ })
276
+
277
+ e.Logger.Fatal(e.StartTLS(":9443", ".cache/ssl_ca.pem", ".cache/key.pem"))
278
+
279
+ }
280
+
281
+ ```

4

自己解決

2018/03/05 02:29

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -207,3 +207,15 @@
207
207
  $ uname -a
208
208
 
209
209
  Linux hogehoge 4.9.81-35.56.amzn1.x86_64 #1 SMP Fri Feb 16 00:18:48 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
210
+
211
+
212
+
213
+ ### 自己解決
214
+
215
+ StartAutoTLSではなく、StartTLSを利用して証明書を指定することで起動することで
216
+
217
+ 正常に https が起動できました。
218
+
219
+ golang echo の http/2 に書いてありました。
220
+
221
+ https://echo.labstack.com/cookbook/http2

3

タイトルを修正

2018/03/05 01:49

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- golang echo で https を起動後に missing server name が発生
1
+ golang echo で https を起動してブラウザからアクセスすると missing server name が発生する
test CHANGED
File without changes

2

仕様について確認した点を追記

2018/03/02 07:46

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -176,6 +176,28 @@
176
176
 
177
177
 
178
178
 
179
+ AutoTLSManager.Cache の仕様に以下のように書かれているので、
180
+
181
+ pem形式の SSL証明書、中間証明書、キーをソース置いてある
182
+
183
+ ディレクトリに .cache ディレクトリを作成して格納しています。
184
+
185
+ ```
186
+
187
+ Manager passes the Cache certificates data encoded in PEM,
188
+
189
+ with private/public parts combined in a single Cache.Put call, private key first.
190
+
191
+ ```
192
+
193
+ 確認した文献: https://github.com/golang/crypto/blob/master/acme/autocert/autocert.go#L92
194
+
195
+
196
+
197
+
198
+
199
+
200
+
179
201
  ### バージョン情報
180
202
 
181
203
  $ go version

1

echo を利用しない方法で https を起動することは確認済み

2018/03/02 07:10

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -138,6 +138,44 @@
138
138
 
139
139
 
140
140
 
141
+ echo ではない以下の方法では、https を起動できることを確認しています
142
+
143
+ ```
144
+
145
+ package main
146
+
147
+
148
+
149
+ import (
150
+
151
+ "log"
152
+
153
+ "net/http"
154
+
155
+ )
156
+
157
+
158
+
159
+ func main() {
160
+
161
+
162
+
163
+ http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
164
+
165
+ w.Write([]byte("Hello world"))
166
+
167
+ })
168
+
169
+
170
+
171
+ log.Fatal(http.ListenAndServeTLS(":9443", ".cache/2018_ssl_ca_cert_hogehoge.pem", ".cache/2018_key_hogehoge.pem", nil))
172
+
173
+ }
174
+
175
+ ```
176
+
177
+
178
+
141
179
  ### バージョン情報
142
180
 
143
181
  $ go version