Readme update

This commit is contained in:
Carlos 2019-08-12 03:29:24 +02:00
parent 49674f7ffe
commit c05392e31a

View File

@ -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