Milestone XProtect Mobile Server – SSL Certificate configuration

Install XProtect PowerShell module to manage Mobile Server as reported in the video above:

Install-Module Posh-XProtectMobile

Follow this article: MileStone XProtect 2019 R2 – How to generated trusted certificate on how to get certificate via MyCertWeb and free top level domain from

Once installed in the system, Powershell will help to configure the certificate automatically:

Get-Help Set-MobileServerCertificate -examples
Sets the sslcert binding for Milestone XProtect Mobile Server when provided with a certificate, an object with a Thumbprint property, or when the -Thumbprint parameter is explicitly provided.

The Thumbprint must represent a publicly signed and trusted certificate located in Cert:\LocalMachine\My where the private key is present.

Set-MobileServerCertificate [-X509Certificate ] [[-Thumbprint] ]

You can get X509 certificate object using this command:

PS C:\WINDOWS\system32> $MyCert = gci Cert:\LocalMachine\My | ? Subject -eq ''
PS C:\WINDOWS\system32> $MyCert

 Thumbprint Subject
---------- -------

Once you have verified the certificate is correct, you can push configuration to Mobile Server with this:

Set-MobileServerCertificate -X509Certificate $MyCert
Set-MobileServerCertificate -Thumbprint <GUID>

To remove certificate at IIS level and check IIS configuration, use these:

netsh http delete sslcert ipport=

netsh http show sslcert ipport=

XMR on Azure – RandomX fork

Previous posts:

Monero network upgrade to new RandomX fork was scheduled on 11/30 and new xmr-stak version dropped support for Monero, so new steps to setup xmrig v5.1.0.

All Azure batch configuration remain the same as reported in original article and uses startup script save in Azure Storage Account

Configuration wizard allows to generate config.json file needed:

    "autosave": true,
    "donate-level": 5,
	"randomx": {
        "init": -1,
        "mode": "auto",
        "1gb-pages": true,
        "wrmsr": 6,
        "numa": true
    "cpu": {
	    "enabled": true,
        "huge-pages": true,
        "hw-aes": null,
        "priority": null,
        "memory-pool": false,
        "yield": true,
        "max-threads-hint": 100,
        "asm": true,
        "argon2-impl": null,
        "cn/0": false,
        "cn-lite/0": false
    "opencl": false,
    "cuda": false,
	"log-file": "xmrig.log",
    "pools": [
            "url": "",
            "user": "your_wallet_here",
            "keepalive": true,
            "tls": true
    "print-time": 60,
    "health-print-time": 60,
	"retries": 5,
    "retry-pause": 5

Upload config.json to your Azure Storage Account as it will be used inside VM. You can create a custom CPU configuration and optimize for RandomX

Ubuntu build, Huge Page optimization and command line to start miner is:

sudo ./xmrig -c=config.json

The new file used as startup script in Azure Batch is like this:

sudo apt-get --assume-yes update
sudo apt-get --assume-yes install git build-essential cmake libuv1-dev libssl-dev libhwloc-dev
git clone
mkdir xmrig/build
cd xmrig/build
cmake ..
make -j$(nproc)
sudo sysctl -w vm.nr_hugepages=1280
sudo bash -c "echo 3 > /sys/devices/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages"
screen -dmS monero sudo ./xmrig -c=config.json

To monitor xmrig miner =

tail -s 5 -n 100 -f /mnt/batch/tasks/startup/wd/xmrig/build/xmrig.log
sudo hscreen -r -S monero

For troubleshooting, review these folders:

# Azure Batch startup script location
cd /mnt/batch/tasks/startup/wd/

# xmrig build folder
cd /mnt/batch/tasks/startup/wd/xmrig/build/