Import Certificates into Cisco IOS Router (SSL VPN)
Problem:
So I've made a few posts on automating SSL VPN with LetsEncrypt etc etc, however what if you're already using some way of generating certificates? Be it LetsEncrypt or otherwise.
Essentially these days I rely on another container to generate certificates as they're used by my loadbalancer to serve HTTPS content for my sites, but I still want to load these certs into my router.
Solution:
I've modified my earlier python script to be able to do this. It can be found here under import_cert.py: https://github.com/dchidell/webvpncert/tree/master
This can then be run inside a container doing something like the following (if you've read some previous posts on netmiko inside Alpine you'll recognise this):
Directory Structure:
root@docker:/home/david/cert# ls
docker-compose.yml Dockerfile import_cert.py
root@docker:/home/david/cert#
Dockerfile:
FROM python:alpine
MAINTAINER David Chidell
RUN apk --no-cache add build-base libffi-dev openssl-dev openssl
RUN pip install --no-cache-dir netmiko
COPY import_cert.py .
ENTRYPOINT ["python", "./import_cert.py"]
CMD ["--help"]
VOLUME ["/certs"]
docker-compose.yml:
version: '3.2'
services:
cert_import:
image: dchidell/router-cert-import
build: .
command: 10.66.50.1 CA_LETSENCRYPT /certs/privkey1.pem /certs/cert1.pem /certs/chain1.pem --u dchidell --sshkey /root/.ssh/id_rsa.pub
volumes:
- /root/.ssh:/root/.ssh:ro
- /mnt/nas/certs/dchidell.com:/certs
You can then run this container like so:
docker-compose -f /home/david/cert/docker-compose.yml run cert_import