From c05392e31a1f3f5644ba96ceb1332e0b61c19e99 Mon Sep 17 00:00:00 2001 From: Carlos <28845529+mesacarlos@users.noreply.github.com> Date: Mon, 12 Aug 2019 03:29:24 +0200 Subject: [PATCH] Readme update --- README.md | 60 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index e38c28e..b671fac 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ + # WebConsole WebConsole is a Spigot plugin for Minecraft 1.14 that enables you to view your server console and manage your server from anywhere. It creates a WebSocket server in the background used by the web interface to send commands, receive your console log and manage your server. @@ -8,29 +9,52 @@ Dont worry about privacy: all data is stored in your browser offline and your PC ## Plugin installation -1. Plugin download -2. Filling config.yml. Port and password configuration -3. SSL config -If generated with -keytool -genkey -keyalg RSA -validity 3650 -keystore "keystore.jks" -storepass "storepassword" -keypass "keypassword" -alias "default" -dname "CN=127.0.0.1, OU=MyOrgUnit, O=MyOrg, L=MyCity, S=MyRegion, C=MyCountry" -then need to https://localhost:8080/ -If generated with letsencrypt https://gist.github.com/xkr47/920ffe94f6a4c171ee59 +1. Download plugin from [Releases](https://github.com/mesacarlos/WebConsole/releases) +2. Open and close your server to generate the config.yml file and open it. You will see something like the following: -# input: fullchain.pem and privkey.pem as generated by the "letsencrypt-auto" script when run with -# the "auth" aka "certonly" subcommand +> useSSL: false +> StoreType: JKS +> KeyStore: plugins/WebConsole/keystore.jks +> StorePassword: storepassword +> KeyPassword: keypassword +> host: localhost +> port: 8080 +> password: yourPasswordGoesHere -# convert certificate chain + private key to the PKCS#12 file format -# este comando pide una pass para exportar, es la storepassword -openssl pkcs12 -export -out keystore.pkcs12 -in fullchain.pem -inkey privkey.pem +Fill `host`, `port` and `password` values. They are the IP you server run at, port where WebSockets will run and and login password, respectively. Password will be asked every time you connect to your server. -# convert PKCS#12 file into Java keystore format -keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.jks -# don't need the PKCS#12 file anymore -rm keystore.pkcs12 +#### SSL Configuration -# Now use "keystore.jks" as keystore in jetty with the keystore password you specfied when you ran -# the "keytool" command +If you want to use WebSockets Secure (A encrypted connection between Client and Server instead of sending plaintext) you need to enable it replacing `useSSL: false` to `useSSL: true` and generating your keystore.jks. You can achieve this by generating a selfsigned certificate or using a valid one, like a Let's Encrypt certificate. + + +##### Selfsigned certificate + +The fast way, but only reccomended for testing purposes. Generate your certificate by running this command on your machine + +> keytool -genkey -keyalg RSA -validity 3650 -keystore "keystore.jks" -storepass "**storepassword**" -keypass "**keypassword**" -alias "default" -dname "CN=127.0.0.1, OU=**MyOrgUnit**, O=**MyOrg**, L=**MyCity**, S=**MyRegion**, C=**MyCountry**" + +Remember to replace required values (the bold ones), so final command looks like this: + +> keytool -genkey -keyalg RSA -validity 3650 -keystore "keystore.jks" -storepass "myVerySecurePaSSword" -keypass "aVerySecurePaSSw0rdAgain" -alias "default" -dname "CN=127.0.0.1, OU=WebConsoleDevelopers, O=WebConsole, L=Madrid, S=Madrid, C=Spain" + +Then, to enable connections from your browser remember to first navigate to https://localhost:8080/ (change port if you changed it before at config.yml). This is required in order to allow your browser connections to servers using your own selfsigned certificate. If you donīt follow this step, you wonīt be able to connect to your WebSockets Server. + +##### Let's Encrypt certificate (or any PEM certificates) + +WebConsole does not support PEM certificates, so you will need to convert it to create your keystore.jks file. Follow the steps mentioned in [this guide](https://gist.github.com/xkr47/920ffe94f6a4c171ee59): + +1. Convert certificate chain + private key to the PKCS#12 file format. You will be asked for a password: Remember it as it will be the StorePassword required in your config.yml +> openssl pkcs12 -export -out keystore.pkcs12 -in fullchain.pem -inkey privkey.pem + +2. convert PKCS#12 file into Java keystore format. You will be asked for another password. This time you are typing the KeyPassword, also required in config.yml +> keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.jks + +3. PKCS#12 file can be deleted +> rm keystore.pkcs12 + +4. Copy keystore.jks to your plugin folder (plugins/WebConsole/keystore.jks) ## How it works