-
-
Notifications
You must be signed in to change notification settings - Fork 179
SSL
You can enable SSL for Wexflow server for both Windows Service (.NET 4.8) and the Console App (.NET 9.0+). This feature will be available in Wexflow 9.2 and above.
Install Wexflow as a Windows Service using one of the following installers (.NET 4.8)
- wexflow-x.x-windows-x64.exe (64-bit)
- wexflow-x.x-windows-x86.exe (32-bit)
Install Wexflow as a cross-platform console app on Windows, Linux, or macOS:
- wexflow-x.x-windows-netcore.zip
- wexflow-x.x-linux-netcore.zip
- wexflow-x.x-macos-netcore.zip
To generate a self-signed certificate for development:
You can test with the following endpoint: https://localhost:8000/api/v1/hello
Update Wexflow Service Uri in Backend/js/settings.js
as follows:
window.Settings = (function () {
const hostname = (window.location.hostname === "" ? "localhost" : window.location.hostname);
const port = 8000;
return {
Hostname: hostname,
Port: port,
Uri: "https://" + hostname + ":" + port + "/api/v1/"
};
})();
Generate .pfx
certificate file.
- Install Win64 OpenSSL
- Add
C:\Program Files\OpenSSL-Win64\bin
to yourPATH
environment variable - Open a PowerShell and run the following command to export your certificate to PFX:
$KEY = "C:\Wexflow-netcore\wexflow.key"
$CRT = "C:\Wexflow-netcore\wexflow.crt"
$PFX = "C:\Wexflow-netcore\wexflow.pfx"
$PASSWORD = "wexflow2018"
openssl pkcs12 -export -out $PFX -inkey $KEY -in $CRT -password pass:$PASSWORD
KEY="/opt/wexflow/Wexflow/wexflow.key"
CRT="/opt/wexflow/Wexflow/wexflow.crt"
PFX="/opt/wexflow/Wexflow/wexflow.pfx"
PASSWORD="wexflow2018"
openssl pkcs12 -export -out "$PFX" -inkey "$KEY" -in "$CRT" -password pass:"$PASSWORD"
KEY="/Applications/wexflow/Wexflow/wexflow.key"
CRT="/Applications/wexflow/Wexflow/wexflow.crt"
PFX="/Applications/wexflow/Wexflow/wexflow.pfx"
PASSWORD="wexflow2018"
openssl pkcs12 -export -out "$PFX" -inkey "$KEY" -in "$CRT" -password pass:"$PASSWORD"
-
Self-signed certificate warning:
If you're using a self-signed certificate, browsers will show a security warning unless the certificate is explicitly trusted on your system.
Edit .\Wexflow.Server\appsettings.json
:
{
"HTTPS": true,
"PfxFile": "C:\\Wexflow-netcore\\wexflow.pfx",
"PfxPassword": "wexflow2018"
}
Then restart the server.
Place your PXF in /opt/wexflow/Wexflow/wexflow.pfx
.
Edit /opt/Wexflow/Wexflow.Server/appsettings.json
:
{
"HTTPS": true,
"PfxFile": "/opt/wexflow/Wexflow/wexflow.pfx",
"PfxPassword": "wexflow2018"
}
Open Terminal and run the following command to restart wexflow
service:
sudo systemctl restart wexflow
Place your PFX in /Applications/wexflow/Wexflow/wexflow.pfx
.
Edit /Applications/Wexflow/Wexflow.Server/appsettings.json
:
{
"HTTPS": true,
"PfxFile": "/Applications/wexflow/Wexflow/wexflow.pfx",
"PfxPassword": "wexflow2018"
}
Open Terminal and run:
cd /Applications/wexflow/Wexflow.Server
dotnet Wexflow.Server.dll
-
Set
HTTPS
option totrue
inC:\Program Files\Wexflow\Wexflow.Server.exe.config
-
Restart Wexflow Windows Service
- Open the MMC console (
Win + R
, then typemmc
) - Install
wexflow.crt
in Trusted Root Certification Authorities (Local Computer) - Install
wexflow.pfx
in Personal store (Local Computer) - Locate your SSL certificate, double-click it
- Go to the Details tab, find Thumbprint
- Copy the thumbprint and remove all spaces
$thumb = "81d53a62964240b8d2cc77b40bf7e6c758554afc"
$cert = Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Thumbprint -eq $thumb }
$keyName = $cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
$keyPath = "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\$keyName"
$keyPath
Example output:
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\088395182206fa2acc494753b3099972_4ced353e-566d-4394-821c-bc9f487c4b5b
icacls "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\088395182206fa2acc494753b3099972_4ced353e-566d-4394-821c-bc9f487c4b5b" /grant *S-1-5-20:R
icacls "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\088395182206fa2acc494753b3099972_4ced353e-566d-4394-821c-bc9f487c4b5b" /grant *S-1-5-18:R
- Generate a new GUID for appid in PowerShell:
New-Guid
- Run the following command (replace the
certhash
andappid
with your values):
netsh http add sslcert ipport=0.0.0.0:8000 certhash=81d53a62964240b8d2cc77b40bf7e6c758554afc appid="{05e46c28-0ed2-4ac0-9473-e78190a425d4}"
- Verify the binding:
netsh http show sslcert ipport=0.0.0.0:8000
Copyright © Akram El Assas. All rights reserved.
- Install Guide
- HTTPS/SSL
- Screenshots
- Docker
- Configuration Guide
- Persistence Providers
- Getting Started
- Android App
- Local Variables
- Global Variables
- REST Variables
- Functions
- Cron Scheduling
- Command Line Interface (CLI)
- REST API Reference
- Samples
- Logging
- Custom Tasks
-
Built-in Tasks
- File system tasks
- Encryption tasks
- Compression tasks
- Iso tasks
- Speech tasks
- Hashing tasks
- Process tasks
- Network tasks
- XML tasks
- SQL tasks
- WMI tasks
- Image tasks
- Audio and video tasks
- Email tasks
- Workflow tasks
- Social media tasks
- Waitable tasks
- Reporting tasks
- Web tasks
- Script tasks
- JSON and YAML tasks
- Entities tasks
- Flowchart tasks
- Approval tasks
- Notification tasks
- SMS tasks
- Run from Source
- Fork, Customize, and Sync