Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: ARM64 Support #657

Open
MichaelGrafnetter opened this issue Nov 14, 2023 · 15 comments
Open

Feature Request: ARM64 Support #657

MichaelGrafnetter opened this issue Nov 14, 2023 · 15 comments

Comments

@MichaelGrafnetter
Copy link

Hello, the installer is currently failing on ARM64 Windows 11 with the following error message:

image

Installer log:

2023-11-14 13:44:04.607   Log opened. (Time zone: UTC+01:00)
2023-11-14 13:44:04.607   Setup version: Inno Setup version 6.2.2
2023-11-14 13:44:04.607   Original Setup EXE: C:\Users\michael\AppData\Local\Temp\WinGet\CertifyTheWeb.CertifySSLManager.6.0.9\CertifyTheWebSetup_V6.0.9.exe
2023-11-14 13:44:04.607   Setup command line: /SL5="$605B6,15665944,1146880,C:\Users\michael\AppData\Local\Temp\WinGet\CertifyTheWeb.CertifySSLManager.6.0.9\CertifyTheWebSetup_V6.0.9.exe" /SILENT /NORESTART /LOG="C:\Users\michael\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir\WinGet-CertifyTheWeb.CertifySSLManager.6.0.9-2023-11-14-13-44-04.044.log"
2023-11-14 13:44:04.607   Windows version: 10.0.22631  (NT platform: Yes)
2023-11-14 13:44:04.607   64-bit Windows: Yes
2023-11-14 13:44:04.607   Processor architecture: ARM64
2023-11-14 13:44:04.607   User privileges: Administrative
2023-11-14 13:44:04.607   Administrative install mode: Yes
2023-11-14 13:44:04.607   Install mode root key: HKEY_LOCAL_MACHINE
2023-11-14 13:44:04.607   64-bit install mode: No
2023-11-14 13:44:04.607   Message box (OK):
                          This program can only be installed on versions of Windows designed for the following processor architectures:
                          
                          x64
2023-11-14 13:44:17.341   User chose OK.
2023-11-14 13:44:17.341   Got EAbort exception.
2023-11-14 13:44:17.341   Deinitializing Setup.
2023-11-14 13:44:17.341   Log closed.

As the app itself is written in .NET, the processor architecture check in the installer seems to be unnecessary.

@webprofusion-chrisc
Copy link
Contributor

Thanks Michael, originally we targeted x64 specifically because of our powershell integrations but in the near future we will have a dotnet 8+ based version with associated changes to powershell integration (it's a web ui and can also run on linux etc).

@webprofusion-chrisc
Copy link
Contributor

Interestingly, out of hundreds of thousands of users you are the first to ask for ARM support! Is there a Windows Server edition that runs on ARM64 and if so is that on Azure or some other provider?

@MichaelGrafnetter
Copy link
Author

MichaelGrafnetter commented Nov 14, 2023

Interestingly, out of hundreds of thousands of users you are the first to ask for ARM support! Is there a Windows Server edition that runs on ARM64 and if so is that on Azure or some other provider?

I am actually also using Certify on workstations to fetch Remote Desktop Protocol (RDP) TLS certificates. And I recently switched to the Windows Dev Kit 2023 as my main development machine, which is powered by a Snapdragon ARM64 CPU. But you are right, Windows ARM64 is also available in Azure, although it is still in Preview.

Windows Dev Kit 2023

@webprofusion-chrisc
Copy link
Contributor

Thanks, so yes we will eventually support arm64. I couldn't say when exactly though. I think from the use case you have that our new product will also suit you well (when its available). It's very much the same idea as the existing WPF app but with multi-user access/roles, web ui. For your RDP certs are these client certificates that you deploy to each machine and are you using DNS validation or (default) http validation?

@MichaelGrafnetter
Copy link
Author

Thanks for your response, @webprofusion-chrisc . I will be more than happy to test the new solution, even though it sounds like an overkill for my use case.
I am only using (Azure) DNS for validation, as the target machines do not even have web servers.

@martinl
Copy link

martinl commented Jul 14, 2024

I tried testing certify the web on macOS windows 11 arm vm and I got the same x64 error message. win-acme and other acme clients seem to be working fine on the same win11 vm using emulation.

@webprofusion-chrisc
Copy link
Contributor

@martinl yes the app is currently x64 only. We have a new version in development which not only has arm support but also has an optional web UI so it can run on any OS.

@webprofusion-chrisc
Copy link
Contributor

Further to this I can confirm that our current development branch (background service + desktop UI) runs without changes on Windows 11 (24H2) arm64, including IIS integration. Powershell integrated features (DNS providers and deployment tasks) have not yet been tested on arm64. The next major release (which will either be called v6.1 or v7.0) will be targeted to work as expected on arm64.

@MichaelGrafnetter
Copy link
Author

Hi, I was actually able to install the 6.0.18 version of the app on ARM64 Windows by unpacking the installer using the innounp and manually copying the files to C:\Program Files and running Certify.Service.exe install start. X64 emulation seems to be working seamlessly.

I suggest modifying the Inno Setup install_script.iss and replacing the following lines:

ArchitecturesAllowed=x64
ArchitecturesInstallIn64BitMode=x64

with

ArchitecturesAllowed=x64compatible
ArchitecturesInstallIn64BitMode=x64compatible

The new installer options should work since Inno Setup 6.3.0, which was released in June 2024. The current installer is generated using version 6.1.0, so tool chain upgrade is required. I have not found the ISS file in this GitHub repo, so I am unable to create the corresponding pull request.

@webprofusion-chrisc
Copy link
Contributor

webprofusion-chrisc commented Sep 13, 2024

For those interested, here is an alpha version of the next major release (7.x), which does install and run on ARM64 (not fully tested):
[removed, see below]

Note that this version is not supported and you may be required to reinstall (and lose settings) when the final version is released as db schema changes etc may happen between now and release. This version is still using .net 462 but our actual plan with v7 is to use dotnet 9. (which is a different build of both the UI and service). [Do not run this install on an existing installation you care about, settings will be migrated that can't be reverted without restoring a backup]

@MichaelGrafnetter thanks for the suggestion regarding the installer, we'll try that out as well to see if x64 emulation is enough.

@webprofusion-chrisc
Copy link
Contributor

webprofusion-chrisc commented Sep 13, 2024

@MichaelGrafnetter I tried your suggestion and that worked well, in my estimation above I wasn't counting on x64 emulation working well enough to run the app (just got an arm64 VM working on azure today, yesterday none of the zones had availability).

Here is a repackaged version (safer than the one I originally linked above) of v6.1.0 allowing for ARM64 install:
https://certifytheweb.s3.amazonaws.com/downloads/test/CertifyTheWebSetup-6.1.0-Any64.exe

@martinl
Copy link

martinl commented Sep 13, 2024

yes, x64 emulation works well, I have had very few issues

@MichaelGrafnetter
Copy link
Author

@webprofusion-chrisc Thanks a lot for the update. Unfortunately, the AWS S3 link is broken (Access Denied), so I was unable to test the repackaged app.

@webprofusion-chrisc
Copy link
Contributor

@MichaelGrafnetter ah the tool I use to upload has forgotten by permission preferences, link will work now!

@MichaelGrafnetter
Copy link
Author

@webprofusion-chrisc Thanks. I can confirm that the new installer works on ARM64 as well. I have also tested certificate renewal with Azure DNS API and deployment to RDP and everything works fine for me. I presume that you could link the new installer from the official website.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants