Chrome will not install an extension it did not sign
This is not a warning you can click through. Chromium requires every extension to carry a cryptographic proof from Google, and no one outside Google can produce one. A downloaded package dragged onto the extensions page fails with CRX_REQUIRED_PROOF_MISSING, on Windows since Chrome 33 and on macOS since Chrome 44.
So there is no install button here. Offering one would be a lie. Two paths genuinely work, and which one you want depends on whether you are setting up your own machine or a fleet of them.
For your own machine
Load the extension unpacked. Chrome keeps it enabled as long as Developer mode stays on. This is the supported developer path, not a workaround.
Download luna-chrome.zip- 1
Download the package
luna-chrome.zip, then unzip it somewhere permanent — Chrome loads it from that folder every launch, so a Downloads folder you clear out will break it.
- 2
Open chrome://extensions
Paste the address; Chrome blocks links to it from web pages.
- 3
Turn on Developer mode
Top right. It has to stay on, or Chrome disables the extension.
- 4
Choose Load unpacked
Select the unzipped folder — the one containing manifest.json.
For a managed fleet
Enterprise policy is the one supported way to install a self-hosted extension permanently. It needs administrator rights, and on Windows and macOS the machine must also be domain-joined or MDM-enrolled — Chrome refuses policy-installed off-store extensions otherwise.
Policy-installed packages are verified without Google’s proof, so a self-signed build is accepted on this path. Note that any non-default policy makes Chrome show “Managed by your organization” in its menu.
# Linux — /etc/opt/chrome/policies/managed/luna.json
{
"ExtensionInstallForcelist": [
"<extension-id>;https://luna.mosphox.com/chrome/update.xml"
]
}
# Windows — HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome
# ExtensionInstallForcelist\1 (REG_SZ)
# = "<extension-id>;https://luna.mosphox.com/chrome/update.xml"
# macOS — com.google.Chrome, delivered as an MDM configuration profile
# ExtensionInstallForcelist = ["<extension-id>;https://…/update.xml"]