FAQ

Unable to link with the static build of protocolfilters.lib, the linker shows "unresolved external symbol" errors.

Define a symbol _PF_STATIC_LIB in project configuration or insert the following string before including protocolfilters.h:
#define _PF_STATIC_LIB 1

Firefox doesn't open HTTPS pages and displays a warning.

The root certificate must be imported to certificate storages of all browsers to avoid errors. Chrome and IE use system storage, where the certificate is always imported automatically. For Firefox and other Mozilla products SSL filter requires the following:
- It is necessary to copy nss subfolder with certutil.exe and all dependent libraries to a folder with your application. This tool is used to import certificates to Mozilla storages.
- The filtering process must have elevated administrative privileges to access all user profile folders.
- It is necessary to call pf_setRootSSLCertSubject after pf_init to start importing root certificate to all supported storages. The process can take up to several minutes depending on the number of files in user profile folders.
- The filter must be started before Firefox and other Mozilla products, because they overwrite the certificate storage in profile folder (cert8.db, cert9.db).
- The latest versions of Firefox (58.x) use a different storage format for the certificate database. It is supported in latest builds of ProtocolFilters (1.1.9.6), with included nss tools version 3.35.