'Enables header that is identified by header_substring on ssl_vhost.
If the header identified by header_substring is not already set,
a new Header directive is placed in ssl_vhost\'s configuration with
arguments from: constants.HTTP_HEADER[header_substring]
.. note:: This function saves the configuration
:param ssl_vhost: Destination of traffic, an ssl enabled vhost
:type ssl_vhost: :class:`~certbot_apache.obj.VirtualHost`
:param header_substring: string that uniquely identifies a header.
e.g: Strict-Transport-Security, Upgrade-Insecure-Requests.
:type str
:returns: Success, general_vhost (HTTP vhost)
:rtype: (bool, :class:`~certbot_apache.obj.VirtualHost`)
:raises .errors.PluginError: If no viable HTTP host can be created or
set with header header_substring.'

def _set_http_header(self, ssl_vhost, header_substring):

    if ('headers_module' not in self.parser.modules):
        self.enable_mod('headers')
    self._verify_no_matching_http_header(ssl_vhost, header_substring)
    self.parser.add_dir(ssl_vhost.path, 'Header', constants.HEADER_ARGS[header_substring])
    self.save_notes += ('Adding    %s    header    to    ssl    vhost    in    %s\n' % (header_substring, ssl_vhost.filep))
    self.save()
    logger.info('Adding    %s    header    to    ssl    vhost    in    %s', header_substring, ssl_vhost.filep)
