Skip to content
This repository was archived by the owner on Dec 10, 2018. It is now read-only.

Print Server

klabarge edited this page Dec 1, 2015 · 15 revisions

#Print Server Configuration

##Prerequisites

  • QZ Tray 1.9.5 or higher

##Objective

  • Run QZ Tray as a dedicated service, useful for machines that cannot have QZ Tray installed (such as a Terminal Services/Citrix environment).

##Obstacles

  • Deploy QZ

    • By default, the deployQZ function is bound to localhost. To override this, replace all calls to deployQZ in your code with deployQZ("foo.bar");, where "foo.bar" is the hostname or IP address which QZ Tray is running on.
  • Localhost bindings

    • For secure websockets support (HTTPS), QZ Tray generates a certificate for localhost traffic at install time called qz-tray.crt. In order for QZ Tray to run on a separate machine, the hostname (usually "localhost") must exist in the certificate. This is an override which be done by running a custom script explained below ###### FIXME ######.
  • Certificate installation

    • Certificate installation varies between browsers and platforms. Distributing a certificate marked for a custom hostname is a manual process which much be done on all workstations requiring HTTPS + QZ Tray. This is outlined further below ###### FIXME ######.
  • Firefox

    • Firefox doesn't allow self-signed certificates to be imported directly, instead a manual import process is needed explained below ###### FIXME ######.

##Server Steps

  1. Install QZ Tray via the desktop installer (and make sure it is running)
  2. Re-run the certificate generation ("foo.bar" is the hostname or IP address that QZ Tray will run on)

Note: This will re-generate the qz-tray.properties, qz-tray.crt and qz-tray.jks Note: If you require Firefox HTTPS support, Firefox needs to be installed prior to this step.

###Windows Open a command prompt as an administrator and run the following commands:

REM Regenerate the certificate
cd "%PROGRAMFILES%\QZ Tray\"
cscript auth\windows-keygen.js . install "foo.bar"

image

###Linux

# Reinstall completely with specified hostname or IP address
sudo qz-tray-1.9.x.run -- -y "foo.bar"

###Apple

# Regenerate the certificate
sudo /Applications/QZ\ Tray.app/auth/apple-keygen.sh install "foo.bar"

# Optionally, regenerate the Firefox configuration files
sudo /Applications/QZ\ Tray.app/auth/firefox/firefox-cert.sh install "foo.bar"
  1. Copy qz-tray.crt from the server QZ Tray installation directory to the client

Note:* Linux stores this in /opt/qz-tray/

  1. Optionally, if Firefox support is needed, copy the following files from the Firefox installation directory:
  • defaults/pref/firefox-prefs.js
  • firefox-config.cfg

Note: If unsure of the location of these files on your system install QZ Tray on a test system and search for them by name. They are both created by QZ Tray and can safely be overwritten.

##Client Steps

  1. Copy the demo folder and the qz-tray.crt (located in QZ Tray\auth) from QZ Tray to the client.
  2. Edit sample.html change deployQZ() to deployQZ("foo.bar")

"foo.bar" is the hostname or IP address which is running QZ Tray.

  1. Install qz-tray.crt into Trusted Root Certificates

###Windows

  • Double click qz-tray.crt

  • Click Install Certificate

  • Local Machine, Next

  • Choose "Trust Root Certificate Authorities" and hit Next

    image

  • Click Finish. If successful, the following screen will appear:

    image

###Linux

###Mac

  1. Open Google Chrome

  2. Right Click, Inspect Element on the sample page

  3. Click the Console tab

  4. Verify the secure websocket connection to 8181 succeeds.

    image