Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Create the Java Keystore using the Keytools from your Java JRE.
    • Generate the Java Keystore with the private key and the certificate for the JobScheduler Master and export the certificate to a second Keystore that is later on used by the JOC Cockpit.
      • Example

        Code Block
        titleExample how to generate a Keystore with private key and certificate
        keytool -genkey -alias "master-https" -dname "CN=jobSchedulerHost,O=myCompany" -validity 1461 -keyalg RSA -keysize 1024 -keypass jobscheduler -keystore "SCHEDULER_DATA/config/private/private-https.jks" -storepass jobscheduler


        Explanations

        • Replace the JETTY_BASE placeholder as specified above.
        • The -dname option specifies the certificate issuer, therefore use your own set of CN, OU, DC that specify the issuer's distinguished name. The O setting is required for the issuer.
        • The -keypass option accepts the password that you will need later on to manage your private key. With the default password being used no further settings are required as explained below.
        • The -keystore option specifies the location of your Keystore file. 
          • The Keystore file should be in reach of the JobScheduler Master, it is therefore recommended to create a sub-folder private in the ./config directory.
          • Using the default
          value
          • file name "private-https.jks" will save the effort of adding further settings as explained above.
        • The -storepass option specifies the password for access to your Keystore file. For the handling of the default password the same applies as stated with the -keypass option.
    • If not otherwise configured then the JobScheduler Master by default uses the password jobscheduler for the respective Keystore.
    • If you choose an individual password for the JobScheduler Master Keystore then adjust the following properties in the SCHEDULER_DATA/config/private/private.conf configuration file:
      • Explanations
        • jobscheduler.master.webserver.https.keystore.file is used for the path to the Keystore
        • jobscheduler.master.webserver.https.keystore.password is used for the Keystore password
        • jobscheduler.master.webserver.https.keystore.key-password is used for the password of your private HTTPS certificate
      • Example

        Code Block
        languagetext
        titleSample private.conf file
        jobscheduler.master.webserver.https.keystore {
          file = "C:/ProgramData/sos-berlin.com/jobscheduler/master110/config/private/private-https.jks"
          # Backslashes are written twice (as in JSON notation):
          # file = "\\\\other-computer\\share\\my-keystore.jks"
          password = "secret"
          key-password = "secret"
        }
  • Export the JobScheduler Master public certificate for use with the JOC Cockpit Web Service
    • Code Block
      titleSample for export certicate
      keytool -exportcert -rfc -noprompt -file "master-https.pem" -alias "master-https" -keystore "SCHEDULER_DATA/config/private/private-https.jks" -storepass jobscheduler
    • The exported certificate of each JobScheduler Master has to be imported to the Java Keystore (rather Truststore) which is used by the JOC Cockpit.

...

  • The JobScheduler Master HTTPS web service is only accessible to authenticated users that are identified by the JobScheduler ID.
    • The JobScheduler ID is specified on installation of a JobScheduler Master and is a unique string.
  • The JobScheduler Master expects HTTP Basic Authentication.
  • The credentials are used from SCHEDULER_DATA/config/private/private.conf configuration file where each user that has an entry of the form:

    Code Block
    jobscheduler.master.auth.users {
      JOBSCHEDULER_ID = "HASH_SCHEME:HASHED_PASSWORD"
    }
  • The HASH_SCHEME is specified by the prefix "plain" and is followed by the password:

    Code Block
    jobscheduler.master.auth.users {
      jobscheduler_prod = "plain:secret"
    }

...