середа, 23 листопада 2016 р.

Добавляем поддержку HTTPS для микросервиса 7dtd.moon

При написании предыдущей заметки Программное формирования изображения на Go, мне понадобилось вставить пример формируемого изображения. Можно конечно это было сделать статическими картинками, но я решил использовать реальный пример работы. Так вот при это я столкнулся с проблемой что Blogger ругался на то что я вставляю картинки которые доступны по http а не по https на котором он работает по умолчании.
Сертификат будем использовать свободный, который выдает Let’s Encrypt, для получения самого сертификата воспользуемся утилитой СertBot. Данный процесс хорошо расписан на этих ресурсах и повторять его тут не имеет смысла.
И так приступим...
Первое это мы добавляем переменные которые будут указывать сам сертификат и закрытый ключ, и запускаем https сервер в отдельном потоке - гороутине (goroutine)
...
  log.Printf("Loading Certificates %s/%s/{privkey.pem,fullchain.pem}\n", *cert, *host)
  keyPath := filepath.Join(*cert, *host, "privkey.pem")
  certPath := filepath.Join(*cert, *host, "fullchain.pem")
...
/*** HTTPS ***/
  log.Println("Listening on https port: ", int(*port)+363)
  go func() {
    if err := http.ListenAndServeTLS(":"+strconv.Itoa(int(*port)+363), certPath, keyPath, nil); err != nil {
      log.Fatal("HTTPS Listen and Serve: ", err)
      os.Exit(1)
    }
  }()
...
Вот и все, теперь у нас есть два веб-сервера, один на порту 26980 (http) и второй на порту 27343 (https)

Немає коментарів:

Дописати коментар