This was tested on OpenBSD 6.2, your experience may very depending on your version.

httpd is chroot’d so the /htdocs in the config below refers to /var/www/htdocs on the actual server filesystem.

Enable httpd

echo 'httpd_flags=""' > /etc/rc.conf.local

Now install certbot and request our certificate: (In previous OpenBSD versions it was called acmeclient)

echo 'export PKG_PATH=' >> /root/.profile
pkg_add -v certbot

certbot certonly --standalone --preferred-challenges http -d

Next let’s create our httpd config

ext_ip=""  #your IP here

server "default" {
        listen on $ext_ip port 80
types {
        text/css css ;
        text/html htm html ;
        text/txt txt ;
        image/gif gif ;
        image/jpeg jpg jpeg ;
        image/png png ;
        application/javascript js ;
        application/xml xml ;
server "" {
        listen on $ext_ip port 80
        listen on $ext_ip tls port 443
        tls certificate "/etc/letsencrypt/live/"
        tls key "/etc/letsencrypt/live/"
        root "/htdocs/" #whatever folder you made under /var/www/htdocs
		directory auto index  #if you want directory listings

Start your web server!

/etc/rc.d/httpd start

Next configure certbot auto renewals

crontab -e

and paste in

0       *       *       *       *       /usr/local/bin/certbot renew

lastly edit /etc/letsencrypt/renewal/

and add

renew_hook = /etc/rc.d/httpd restart

That is it you are all set!