Я нашел эти инструкции для настройки сервера SSL, чтобы обмануть кнопку тире.
https://mpetroff.net/2015/05/amazon-dash-button-teardown/
(Смотрите комментарий Марка, опубликованный 9 августа 2015 года в 17:39).
Он использовал веб-сервер с https://gist.github.com/jonathantneal/774e4b0b3d4d739cbc53
Используя приведенную выше информацию, я смог написать свой собственный сервер SSL.
import BaseHTTPServer, SimpleHTTPServer, ssl
class MyHTTPHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET(s):
print 'GET', s.path
def do_POST(s):
print 'POST', s.path
if __name__ == "__main__":
# Create the server, binding to localhost on port 443
httpd = BaseHTTPServer.HTTPServer(('', 443), MyHTTPHandler)
httpd.socket = ssl.wrap_socket (httpd.socket, certfile='cert.pem', server_side=True)
httpd.serve_forever()
и я получаю выходные данные, как:
POST /2/b
POST /2/d
POST /2/d
POST /2/d
Выше все от одного пресса. Однако он не более полезен, чем универсальный TCP-сервер, который просто обрабатывает входящее соединение. Поскольку нет разницы между одним нажатием, двойным нажатием и длительным нажатием.
(Вполне вероятно, что вам нужно обмануть кнопку тире, чтобы доверять самозаверяющему сертификату. Это я и сделал)
$ openssl req -x509 -newkey rsa:2048 -out cert.pem -nodes -keyout cert.pem
Generating a 2048 bit RSA private key
.................................................+++
..................................................................................................................+++
writing new private key to 'cert.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Washington
Locality Name (eg, city) []:Seattle
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:Amazon.com, Inc.
Common Name (e.g. server FQDN or YOUR name) []:parker-gateway-na.amazon.com
Email Address []: