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 6, 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 and mobile devices).

##Steps The steps will be the same for each platform, however, the way you regenerate the certificate and install it on the client will vary.

  1. Install QZ Tray
  2. Re-run the certificate generation
  3. Move certificates/files to the client
  4. Install qz-tray.crt on the client
  5. Edit deployQZ();
  6. Verify secure connection

##Install QZ Tray Install QZ Tray 1.9.5 or higher onto the server via the desktop installer. Refer to this guide if unsure how to do this.

##Remove 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 is done by running a custom script

  1. 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.

  1. After generating the new certificate, restart QZ Tray

###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"

##Move Files to Client

  1. Copy qz-tray.crt from the server's QZ Tray installation directory to the client

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

  2. Copy the demo folder for testing (located in QZ Tray\demo) from QZ Tray to the client.

  3. Optionally, if Firefox support is needed, copy the following files from the Firefox installation directory:

    • These may be located in C:\Program Files (x86)\Mozilla Firefox\
      • 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.

Now that the files have been moved to the client, the rest of the steps can be completed on the client.

##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.

  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. Import Firefox certificates Firefox does not allow self-signed certificates to be imported directly, instead a manual import process is needed.
  • Overlay the existing Firefox files:
defaults/pref/firefox-prefs.js
firefox-config.cfg

with the ones transferred over from the server

  • Again, these may be located in C:\Program Files (x86)\Mozilla Firefox\

##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.

  1. Edit sample.html change deployQZ() to deployQZ("foo.bar")

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

/**
* Deploy tray version of QZ, or
* Optionally used to deploy multiple versions of the applet for mixed
* environments.  Oracle uses document.write(), which puts the applet at the
* top of the page, bumping all HTML content down.
*/

//deployQZ();
  deployQZ("192.168.1.2");

##Verify Secure Connection

  1. Open sample.html in 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