Dopo aver importato la configurazione della CA e del certificato di OpenVPN (come indicato in questa guida) su TrueNAS, se ci si imbatte nell’errore Client certificate must have SubjectKeyIdentifier extension set, seguiamo questi passaggi per risolvere il problema.
Soluzione
Come prima cosa colleghiamoci in SSH alla nostra istanza TrueNAS. Eseguiamo una copia di backup di questo file
cp /usr/local/lib/python3.9/site-packages/middlewared/plugins/vpn.py vpn_backup.py
Ora apriamo con il nostro editor preferito il file
vi /usr/local/lib/python3.9/site-packages/middlewared/plugins/vpn.py
Cerchiamo questa porzione di codice
extensions = cert['extensions']
for ext in ('KeyUsage', 'SubjectKeyIdentifier', 'ExtendedKeyUsage'):
if not extensions.get(ext):
verrors.add(
f'{schema}.{mode}_certificate',
f'{mode.capitalize()} certificate must have {ext} extension set.'
)
rimuoviamo la voce
SubjectKeyIdentifier in modo tale che il codice risultante sia il seguente
extensions = cert['extensions']
for ext in ('KeyUsage', 'ExtendedKeyUsage'):
if not extensions.get(ext):
verrors.add(
f'{schema}.{mode}_certificate',
f'{mode.capitalize()} certificate must have {ext} extension set.'
)
Salviamo il file e riavviamo il sistema.