[pve-devel] [PATCH manager] Allow non-self-signed override certificate for API

Fabian Grünbichler f.gruenbichler at proxmox.com
Tue Mar 8 15:55:33 CET 2016


if the files pveproxy-ssl.pem and pveproxy-ssl.key are
available for a node (i.e., in /etc/pve/<node>/), they will
be used as TLS certificate and private key for the web
interface and API of this node.

Note: the Spice and non-websocket VNC connections are still
using the self-signed certificate and key in pve-ssl.pem
and pve-ssl.key.
---
This would allow us to support commercial and Let's Encrypt
certificate setups with far less complications, but installations
using the old PVE 3 setup from the wiki will need to manually
migrate their certificates to benefit from this.

If applied, I will update the wiki and other documentation.

Tested using a two node cluster:
- Shell (noVNC and Spice)
- proxied Shell (noVNC and Spice)
- Console (LXC and Qemu, noVNC and Spice)
- proxied Console (LXC and Qemu, noVNC and Spice)
- online migration (Qemu)

 PVE/Service/pveproxy.pm | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/PVE/Service/pveproxy.pm b/PVE/Service/pveproxy.pm
index a4080a0..0bc2f5a 100755
--- a/PVE/Service/pveproxy.pm
+++ b/PVE/Service/pveproxy.pm
@@ -131,6 +131,12 @@ sub init {
     } else {
 	$self->{server_config}->{ssl}->{dh} = 'skip2048';
     }
+
+    if (-f '/etc/pve/local/pveproxy-ssl.pem' && -f '/etc/pve/local/pveproxy-ssl.key') {
+	$self->{server_config}->{ssl}->{cert_file} = '/etc/pve/local/pveproxy-ssl.pem';
+	$self->{server_config}->{ssl}->{key_file} = '/etc/pve/local/pveproxy-ssl.key';
+	syslog('info', 'Using \'/etc/pve/local/pveproxy-ssl.pem\' as certificate for the web interface.');
+    }
 }
 
 sub run {
-- 
2.1.4





More information about the pve-devel mailing list