How to enable SSL for a standalone Sinatra app?

后端 未结 2 1990
悲&欢浪女
悲&欢浪女 2021-02-05 23:52

I want to write a quick server app in Sinatra. It has to be self-contained (i.e. not use apache/nginx/passenger) but also has to support SSL.

Is there an easy way to en

2条回答
  •  梦毁少年i
    2021-02-06 00:15

    Use JRuby interpreter + jetty-rackup gem (http://github.com/geekq/jetty-rackup) Edit jetty-rackup file in the jetty-rackup gem and add a SslSocketConnector, some code to help you:

        security_connector = Jetty::Security::SslSocketConnector.new
        security_connector.set_acceptors(config[:acceptor_size])
        security_connector.port = config[:port]
        security_connector.confidential_port = config[:port]
        security_connector.keystore = keystore
        security_connector.password = config[:password]
        security_connector.key_password = config[:key_password].nil? ? config[:password] : config[:key_password]
        security_connector.truststore = truststore
        security_connector.trust_password = config[:trust_pasword].nil? ? config[:password] : config[:trust_pasword]
        server.add_connector(security_connector)
    

    Sample config:

    # Config
    :acceptor_size: 10
    :ssl: true
    :keystore: keystore.jks
    :password: your_pass
    # :key_password: your_pass # if different
    # :truststore: truststore.jks # if different
    # :trust_pasword: your_pass # if different
    

    Generating keystore.jks : http://docs.codehaus.org/display/JETTY/How+to+configure+SSL

提交回复
热议问题