Nonchalant Programming Master

    openvpn-config-splitter

    1.0.0 • Public • Published

    Build Status dependency status

    openvpn-config-splitter

    Splits OpenVPN (.ovpn) files into separate files for private key, user+ca certificates and tls-auth key, for use with network-manager in debian/ubuntu.

    Installation

    openvpn-config-splitter can be installed using npm:

    # NPM: 
    npm install -g openvpn-config-splitter

    Usage

    As a CLI-tool

    # Install globally 
    $ npm install -g openvpn-config-splitter
     
    # Run it, specifying your unsplit OpenVPN configuration file 
    $ ovpnsplit path/to/some/config.ovpn
     
    # Config is now split into separate files, new configuration 
    # linking to the split files has been generated 
    $ ls path/to/some
    ca.crt  client.key  client.ovpn  client.split.ovpn  ta.key  user.crt

    As a library

    var fs         = require('fs'),
        configPath = '/some/path/to',
        splitter   = require('openvpn-config-splitter');
     
    var paths = {
        'caCert': configPath + '/openvpn-ca.crt',
        'userCert': configPath + '/openvpn-user.crt',
        'privateKey': configPath + '/openvpn-private.key',
        'tlsAuth': configPath + '/openvpn-tls.key'
    };
     
    fs.readFile(configPath + '/config.ovpn', function(err, originalConfig) {
        if (err) {
            console.error('Could not read file (' + err.path + ')');
            process.exit(1);
        }
     
        splitter.split(originalConfig, paths, function(err, parts, missing) {
            if (err) {
                console.error(err);
                process.exit(1);
            }
     
            /**
             * `parts` now contain the matched parts of the config + new config
             * (caCert, userCert, privateKey, tlsAuth, config)
             *
             * `missing` is an array containing the parts that were NOT found -
             * use this if you want to warn the user or fall back if you require
             * a specific part to be present
             */
     
            // Want to write the split files?
            splitter.writeToFiles(parts, paths, function(err) {
                if (err) {
                    console.log(err);
                    process.exit(1);
                }
     
                console.log('Hooray, we split the files and wrote them to disk!');
            });
     
        });
    });

    Install

    npm i openvpn-config-splitter

    DownloadsWeekly Downloads

    9

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • rexxars