ExeOutput for PHP
  • Discover
    Homepage
    Our Latest News and Articles

    Keep up-to-date with the latest developments, insightful articles.

    Why a PHP Compiler?

    Reasons for using our PHP compiler ExeOutput for PHP.

    Screenshots

    Get a visual tour of our software through various screenshots.

    Video and Screencasts

    Access a range of video content, from detailed tutorials to product demos.

  • Feature Tour
    All-in-one PHP to EXE Compiler
    Use PHP power to create Windows apps
    Full HTML5, JavaScript and CSS3 Support
    Make GUI And Console Apps with PHP
  • Downloads
    Get ExeOutput for PHP

    Download the installer of our PHP to EXE compiler

    PHP App Examples

    Download sample apps made with ExeOutput for PHP

    WordPress Desktop App

    Download the stand-alone WordPress app sample

  • Buy Now
  • Learn
    Documentation

    Full online documentation of ExeOutput for PHP

    PHP App Samples

    Example projects made with ExeOutput for PHP for various cases

    ChangeLog

    Version history and releases of ExeOutput for PHP

    Privacy Policy

    See our Privacy Policy for ExeOutput for PHP

    About Us

    More information about G.D.G. Software

  • Support
    Contact Us

    Contact our staff or open a support ticket

    Newsletter

    Stay Updated: subscribe to our newsletter

    Frequently Asked Questions

    Find your answer directly in our FAQ

    Support Center

    Get direct support for ExeOutput for PHP

    Affiliate Program

    Join our affiliate program to promote ExeOutput and earn money

    Community Forum

    Visit our support forum and ask your questions

Try For Free
My Account

Getting Started

11
  • Welcome to ExeOutput for PHP
  • Getting Started
  • Starting a New Project
  • Advice for Getting Started with PHP Applications
  • How to Compile Your Project
  • How Compiled PHP GUI Applications Work
  • How Compiled PHP Console Applications (CLI) Work
  • Using PHP Frameworks
  • Visual C++ Redistributable Requirement
  • Application Command Line Switches
  • PHP Samples

Working With PHP

12
  • Working with PHP
  • Choose a PHP Version
  • Accessing Files in Compiled PHP Applications
  • Saving Files with PHP in Desktop Applications
  • Solving PHP Errors
  • Using the Save As Dialog Box in PHP Applications
  • Selecting Local Files with PHP (File Upload Replacement)
  • Built-In ExeOutput for PHP Functions
  • About PHP Sessions and Cookies
  • Global Variables
  • Using the cURL Extension
  • Using exec(), system() in Applications

Databases

4
  • Using Databases in Applications
  • MySQL and MariaDB Support
  • Using a Portable MySQL (MariaDB) Server
  • How to Check MySQL Server Connection

JavaScript And Browser

14
  • JavaScript and the Chromium Browser
  • Developer Tools in ExeOutput Applications
  • The exeoutput JavaScript Object API
  • JavaScript window extension
  • Special Protocols for Links
  • HTML5 and CSS3 Support
  • Using HTML5 Video and Audio
  • Print, Kiosk Printing, and PDF
  • Opening New Windows
  • JavaScript window extension
  • Using Flash Objects (SWF) in Compiled Applications
  • Adding Custom Headers to Requests
  • How to Configure Proxy for Your App
  • HTTP Basic Authentication

File Manager

4
  • File Manager
  • File Properties Editor
  • About External Files
  • Internal Code Editor

Application Settings

9
  • Choosing and Configuring the Rendering Engine
  • Chromium Embedded Framework (CEF) Settings
  • WebView2 Rendering Engine Settings
  • Main Window Settings
  • UI Skin Properties
  • Application Components
  • Language and Localization
  • Startup and Exit Messages
  • Application Settings – Dialog Boxes

PHP Settings

7
  • PHP Settings – Main Settings
  • PHP Settings – PHP Extensions
  • PHP.ini Settings
  • PHP Settings – String Protection
  • PHP Settings – PHP Debugging
  • PHP Settings – External HTTP Server
  • Redirection and Routing

User Interface

13
  • User Interface Components
  • User Interface Editor
  • UI Control Actions
  • How to Modify Controls at Runtime
  • Status Bar Properties
  • Printer Properties
  • Tray Icon Properties
  • Context Menu Properties
  • Creating a Ribbon for Your Application
  • Toolbars in Your PHP Application
  • Menu Bar in your PHP application
  • Adding an Image or Logo to the UI
  • Using Timers and Cron Jobs in Your Application

Security

4
  • Security – Global Protection
  • Security – PHP Protection
  • Security – Code Signing (Digital Signatures)
  • Security – Licensing

Application Output

5
  • Application Output Settings
  • Output – Deployment Options
  • Application Loading Screens
  • Output – EXE Icon and Version Information
  • Output – Creating Installers or Zip Archives

Scripting with HEScript

9
  • Introduction to Scripting with HEScript
  • The HEScript Editor
  • Adding HEScript Code to Your Application
  • Script Templates
  • Running and Calling HEScript Procedures/Functions
  • HEScript Function Reference
  • How to Run an Executable Program
  • How to Prompt a User for Their Name Once and Store It
  • How to Call DLL Functions

Additional Information

6
  • Environment Options
  • Technical Notes Regarding Applications
  • Cloning a Project
  • Command Line Options
  • Contact Information
  • About this documentation
View Categories
  • Home
  • ExeOutput for PHP Help
  • Security
  • Security – Code Signing (Digital Signatures)

Security – Code Signing (Digital Signatures)

5 min read

When you digitally sign an application (a process known as code signing), you assure users that the code has not been tampered with or altered. Digital signing is based on Microsoft Authenticode® technology. This enables both users and the operating system to verify that the program code comes from the legitimate publisher. ExeOutput for PHP makes it easy to sign your compiled application .exe files by calling the necessary programs automatically.

If you digitally sign your software, users are generally presented with a digital certificate when they download your application:

img

For signed applications, the publisher’s name is displayed. Your users will know that the .exe file is authentic and has not been tampered with.

For unsigned applications, Windows shows the following warning message:

img

To digitally sign your application, enable the “Digitally sign my application” option in Security -> Code Signing and follow the steps below.

Info

This Microsoft article explains most of what you need to know about code signing with Authenticode: Introduction to Code Signing

Warning

Current Windows limitations prevent the signing of EXE files larger than 2 GB. If code signing is a requirement and your EXE file exceeds 2 GB, consider keeping some files external.

How to Obtain a Code Signing Certificate #

To sign your application, you need a valid code signing certificate from a trusted Certificate Authority (CA), such as Sectigo or DigiCert. CAs offer different types of certificates, but only code signing certificates are compatible with Authenticode.

You can only digitally sign your .EXE after you have received your certificate and token from a CA.

Steps for Code Signing #

ExeOutput for PHP simplifies the code signing process with its integrated GSignCode.exe utility. No third-party software installation is necessary. Follow these steps to sign your application:

  1. Specify the location of your code signing certificate, either by providing the path to the Personal Information Exchange (PFX) file or by selecting the certificate from the Windows Certificate Store (Local Computer, Personal section). You must provide either the path to the PFX file, the certificate’s subject name, or the certificate’s thumbprint.
  2. If using a PFX file, enter the associated password for added security.
  3. Alternatively, specify the certificate’s subject name or thumbprint for direct access from the Windows Certificate Store.

Application Information URL #

This URL is included in your digital certificate to direct users to a webpage where they can learn more about your product or company. If you do not specify a URL, ExeOutput for PHP will use the default from the Icon / Version page.

Code Signing with a Token #

Following changes implemented by the Certificate Authority/Browser (CA/B) Forum, effective June 1, 2023, the code signing process has shifted significantly. The forum now mandates that code signing certificate keys be stored on a hardware security module (HSM) or a token that meets or exceeds FIPS 140-2 Level 2 or Common Criteria EAL 4+ standards. This change is primarily aimed at combating the malicious use of stolen code signing keys to sign and distribute malware.

With this new requirement, the traditional PFX (Personal Information Exchange) format, which can be stored and accessed digitally, is becoming obsolete. Instead, it is recommended to use the subject name or thumbprint of the certificate after installing it (as a .CER file) in the personal Windows certificate store.

ExeOutput for PHP handles code signing with a required token without issue. Just ensure the token containing the private key is physically inserted into the computer.

Tip

If your CA uses the SafeNet client, you will be prompted for your password with each code signing instance. To streamline this process, you can activate the “Enable single logon” option. This setting requires the password to be entered only once per session, rather than for each signature, thereby reducing redundancy.

Digest Algorithms #

While SHA-1 is being deprecated due to security vulnerabilities, newer algorithms like SHA-256, SHA-384, and SHA-512 are recommended for stronger security. They are supported across all modern Windows systems. It is important to note that SHA-1 is also being deprecated and should no longer be used for code signing. Please choose the algorithm that meets your CA’s specifications.

Dual Code Signing (SHA-256 and SHA-1) #

It is now mandatory to use signatures with an SHA-256 message digest instead of SHA-1. However, older Windows versions like Vista or XP do not recognize SHA-256 signatures. In this situation, it is possible to add two signatures to the .EXE file in a process called “dual code signing”.

Warning

By default, ExeOutput for PHP will use dual code signing if run on Windows 8 or later. On Windows 7, an SHA-256 signature is used by default, and on previous Windows versions, an SHA-1 signature is used. Therefore, we recommend using ExeOutput for PHP on Windows 8 or higher to benefit from all code signing features.

Elliptic Curve Cryptography (ECC) Support #

In addition to RSA, ExeOutput for PHP now supports certificates that use Elliptic Curve Cryptography (ECC). ECC certificates offer stronger security with shorter key lengths, making them more efficient. For instance, a 256-bit ECC key provides security comparable to a 3072-bit RSA key, enhancing both performance and security.

Digital Signature Timestamp #

A timestamp is added to your application’s digital signature to ensure it never expires, even after the signing certificate has expired. Ensure your system has an internet connection during the signing process for this time-stamping to work.

Two timestamp servers are used: an Authenticode-compatible server and an RFC-3161-compatible server. You can configure their URLs in the Environment Options.

What are your Feelings

  • Happy
  • Normal
  • Sad

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
Security – PHP ProtectionSecurity – Licensing

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *


Table of Contents
  • How to Obtain a Code Signing Certificate
  • Steps for Code Signing
    • Application Information URL
  • Code Signing with a Token
  • Digest Algorithms
    • Dual Code Signing (SHA-256 and SHA-1)
    • Elliptic Curve Cryptography (ECC) Support
  • Digital Signature Timestamp
ExeOutput for PHP to EXE compiler

PHP to EXE App Compiler
© G.D.G. Software 2025

X-twitter Youtube
Software
  • Home
  • Feature Tour
  • Screenshots
  • Video and Screencasts
  • Home
  • Feature Tour
  • Screenshots
  • Video and Screencasts
Get
  • Download
  • Buy Now
  • PHP App Samples
  • My Account
  • Download
  • Buy Now
  • PHP App Samples
  • My Account
Connect
  • Latest News
  • Newsletter
  • Forum
  • Affiliate Program
  • Support Center
  • Latest News
  • Newsletter
  • Forum
  • Affiliate Program
  • Support Center
QUESTIONS?
  • Contact Us
  • FAQ
  • Documentation
  • Privacy Policy
  • About Us
  • Contact Us
  • FAQ
  • Documentation
  • Privacy Policy
  • About Us
Manage Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
  • Manage options
  • Manage services
  • Manage {vendor_count} vendors
  • Read more about these purposes
View preferences
  • {title}
  • {title}
  • {title}