> On Jul 30, 2024, at 20:34, Stuart Henderson <s...@spacehopper.org> wrote:
> 
> On 2024/07/30 20:19, J Doe wrote:
>>> On 2024-07-30 19:39, Stuart Henderson wrote:
>>> 
>>> On 2024-07-30, J Doe <gene...@nativemethods.com> wrote:
>>>> As a result with continuing to experiment with my configuration, I ran
>>>> into a new issue.  I followed the instructions in the OpenBSD FAQ[0] for
>>>> an X.509 configuration - in particular the following (with hostnames for
>>>> my server and Mac):
>>>> 
>>>>      server1# ikectl ca vpn certificate client1.domain create
>>>>      server1# cp /etc/ssl/vpn/client1.domain.crt /etc/iked/certs/
>>>>      server1# ikectl ca vpn certificate client1.domain export
>>> 
>>> BTW this is a shortcut that ikectl implements to make things easy,
>>> although it does mean that the client's "private" key actually ends
>>> up on the server.
>>> 
>>> The traditional way of doing this is exactly like an X509 cert for a
>>> web server, i.e. the client generates a private key and cert signing
>>> request, the key is never transferred off the machine, only the CSR
>>> which is taken to the CA. The CA then uses that to produce a cert
>>> which is signed by the CA and sent back.
>>> 
>>> See the X.509 AUTHENTICATION section in isakmpd(8) for some gory
>>> details which are mostly hidden if you use "ikectl ca".
>>> 
>>>>      server1# tar -C /tmp -xzf client1.domain.tgz *pfx
>>>>      server1# cp /tmp/export/client1.domain.pfx \
>>>>          /var/www/htdocs/client1.domain.pfx
>>>> 
>>>> ...so on my OpenBSD server I have the client's X.509 certificate and the
>>>> CA certificate at: /etc/iked/certs.
>>>> 
>>>> I then removed the _client_ certificate from this location on the server
>>>> and attempted connecting from the Mac and it authenticated.
>>>> 
>>>> My new question is - shouldn't the server reject a X.509 authentication
>>>> attempt if the _client_ certificate is not on the server ?
>>> 
>>> No, that's not how it is expected to work, you don't need the client cert
>>> on the server, just a way to validate that it's correct (by checking the
>>> CA's signature and, IIUC, checking the subjectAltName against srcid).
>> 
>> 
>> Hi Stuart,
>> 
>> Thanks for your reply.
>> 
>> Ok, I will make a note to read through the X.509 AUTHENTICATION section
>> in: man 8 isakmpd.
>> 
>> In regards to your last paragraph, where you state:
>> 
>>    "... just a way to validate that it's correct (by checking the CA's
>>    signature ..."
>> 
>> ... does that mean if I remove my: ca.crt file from: /etc/iked/ca on the
>> _server_ that the client should _not_ be able to authenticate, or is
>> validating the CA's signature not dependent on that ?
> 
> As far as I know that's correct, I don't think there's anywhere else
> that it should be picking up the CA cert from.

Hi,

Interesting.  I moved the: ca.crt file from: /etc/iked/ca on the server to the 
home directory and re-started iked and the client is still able to authenticate.

Is it possible that iked can authenticate the client based on the server 
certificate ?  In my iked.conf configuration it is specified via:

   srcid server.home.arpa 

… and the server certificate: server.home.arpa.crt is stored in: 
/etc/iked/certs on the server.

Is it possible that the: ca.crt is bundled in there and that is what it is 
using in the absence of: /etc/iked/ca/ca.crt ?

Thanks again,

- J

Reply via email to