So, I'm having a problem configuring HTTPS to work with my Restlet 2.0
server. Things work with plain HTTP.
What I'm doing in excessive detail:
1) I created a self-signed certificate using keytool:
keytool -genkey -alias kloud.co -keyalg RSA -keystore ./keystore.jks
-keysize 2048
2) I configure the server:
Server server = component.getServers().add(Protocol.HTTPS, portnum);
Series<Parameter> params = server.getContext().getParameters();
params.add("keystorePath", "./keystore.jks");
params.add("keystoreType", "PKCS12");
params.add("keystorePassword", "apassword");
params.add("keyPassword", "anotherpassword");
When I do this, it throws an exception:
> Exception in thread "main" java.io.IOException: DerInputStream.getLength():
> lengthTag=109, too big.
> at sun.security.util.DerInputStream.getLength(DerInputStream.java:561)
> at sun.security.util.DerValue.init(DerValue.java:365)
> at sun.security.util.DerValue.<init>(DerValue.java:320)
> at
> sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1204)
> at java.security.KeyStore.load(KeyStore.java:1201)
> at
> org.restlet.engine.security.DefaultSslContextFactory.createSslContext(DefaultSslContextFactory.java:198)
> at
> org.restlet.ext.simple.HttpsServerHelper.start(HttpsServerHelper.java:272)
> at org.restlet.Server.start(Server.java:585)
> at org.restlet.Component.startServers(Component.java:600)
> at org.restlet.Component.start(Component.java:527)
> at com.kloudshare.restserver.RestServer.start(RestServer.java:130)
> at rest_server$_main__3998.invoke(rest_server.clj:208)
> at clojure.lang.AFn.applyToHelper(AFn.java:161)
> at clojure.lang.AFn.applyTo(AFn.java:153)
> at rest_server.main(Unknown Source)
>
So, my question is: what am I doing wrong? (Being mindful of the fact that
I'm probably doing multiple things wrong).
Thanks for helping.
Brian
------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2704583