2014-11-06 53 views
2

有很多单行HTTP服务器可用,例如一行https服务器

的Python

python -m SimpleHTTPServer 8000 

红宝石

ruby -run -ehttpd . -p8000 

是否有任何1线HTTPS服务器?如果他们生成自己的自签名证书,甚至更好。少量线路也可以工作。

回答

2

红宝石WEBrick documentationsection on HTTPS。我需要添加DocumentRoot.start,来到了这一点:

ruby -r webrick/https -e ' 
    WEBrick::HTTPServer.new(
    Port: 8000, DocumentRoot: ".", 
    SSLEnable: true, SSLCertName: [%w[CN localhost]]).start' 

我使用Ruby 2.1.2的测试。

+0

太棒了!谢谢! – 2016-06-23 09:42:03

1

Hunchentoot可用于此目的。这一行相当长,但不是不可能。不过,您需要提供文件中的证书和密钥。

sbcl --eval '(progn 
    (and nil #.(require "hunchentoot")) 
    (setq hunchentoot:*dispatch-table* 
     (list (hunchentoot:create-folder-dispatcher-and-handler "/" "'`pwd`/'"))) 
    (hunchentoot:start (make-instance (quote hunchentoot:easy-ssl-acceptor) 
            :port 8443 
            :ssl-privatekey-file "../cert.key" 
            :ssl-certificate-file "../cert.crt")))' 

为了便于阅读,上面的命令被分成多行,它也可以作为一行输入。

+0

谢谢,这太神奇了! – 2014-11-06 23:45:37

1

使用OpenSSL的s_server实用程序变得非常简单。我刚刚使用它来帮助在真正的后端准备好之前测试负载平衡器配置(而不是为本身提供内容)。第一行创建一个自签名证书。

openssl req -newkey rsa:2048 -nodes -x509 -subj '/CN=name-you-want.example.com' -days 3650 -out server.cert -keyout server.key 
openssl s_server -accept 7781 -cert server.cert -key server.key -WWW 

有关更多信息,请参见s_server的手册页。

+0

太好了。然而,Chrome并不赞同加密:“服务器具有弱临时Diffie-Hellman公钥” – 2016-01-25 10:15:28

1

避免以下铬错误:
服务器具有弱短暂的Diffie-Hellman公钥
您需要提供一组密码是强大到足以满足镀铬的要求,例如:

-cipher kRSA+RSA 

对我来说,以下工作:

openssl req -x509 -newkey rsa:4096 -nodes -sha256 -keyout key.pem -out cert.pem -days 365 
openssl s_server -key key.pem -cert cert.pem -accept 443 -cipher kRSA+RSA