{
"info": {
"author": "Pulp Project Developers",
"author_email": "pulp-list@redhat.com",
"bugtrack_url": null,
"classifiers": [
"Framework :: Django",
"License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7"
],
"description": "``pulp_certguard`` Plugin\n=========================\n\nThis is the ``pulp_certguard`` Plugin for the\n`Pulp Project 3.0+ `__. This plugin provides X.509 certificate\nbased content protection. The `X509CertGuard` authenticates the web request by validating the client\ncertificate passed in the ``SSL_CLIENT_CERTIFICATE`` HTTP header using the CA (Certificate\nAuthority) certificate that it has been configured with.\n\nAll REST API examples bellow use `httpie `__ to perform the requests.\nThe ``httpie`` commands below assume that the user executing the commands has a ``.netrc`` file\nin the home directory. The ``~/.netrc`` should have the following configuration:\n\n.. code-block::\n\n machine localhost\n login admin\n password admin\n\nIf you configured the ``admin`` user with a different password, adjust the configuration\naccordingly. If you prefer to specify the username and password with each request, please see\n``httpie`` documentation on how to do that.\n\nThis documentation makes use of the `jq library `_\nto parse the json received from requests, in order to get the unique urls generated\nwhen objects are created. To follow this documentation as-is please install the jq\nlibrary with:\n\n``$ sudo dnf install jq``\n\nInstall ``pulpcore``\n--------------------\n\nFollow the `installation\ninstructions `__\nprovided with pulpcore.\n\nUsers should install from **either** PyPI or source.\n\nInstall ``pulp-certguard`` from source\n--------------------------------------\n\n.. code-block:: bash\n\n source ~/pulpvenv/bin/activate\n git clone https://github.com/pulp/pulp-certguard.git\n cd pulp-certguard\n pip install -e .\n\nInstall ``pulp-certguard`` From PyPI\n------------------------------------\n\n.. code-block:: bash\n\n source ~/pulpvenv/bin/activate\n pip install pulp-certguard\n\nMake and Run Migrations\n-----------------------\n\n.. code-block:: bash\n\n django-admin makemigrations certguard\n django-admin migrate certguard\n\n\nCreate a content guard named ``foo``\n------------------------------------\n\nThis example assumes that ``~/ca.pem`` is a PEM encoded CA certificate.\n\n``$ http --form POST http://localhost:24817/pulp/api/v3/contentguards/certguard/x509/ name=foo ca_certificate@~/ca.pem``\n\n.. code:: json\n\n {\n ...\n \"_href\": \"/pulp/api/v3/contentguards/certguard/x509/3046291f-d432-4a85-9d7e-fad12b0aaed7/\",\n ...\n }\n\n``$ export GUARD_HREF=$(http localhost:24817/pulp/api/v3/contentguards/certguard/x509/?name=foo | jq -r '.results[0]._href')``\n\n\nCreate a distribution with content protection\n---------------------------------------------\n\n`` $ http POST http://localhost:24817/pulp/api/v3/distributions/ name=bar base_path=files content_guard=${GUARD_HREF}``\n\n.. code:: json\n\n {\n ...\n \"_href\": \"/pulp/api/v3/distributions/305adfe0-4851-432f-9de3-13f9b10fe131/\"\n ...\n }\n\n\nAdd content protection to an existing distribution\n--------------------------------------------------\n\n`` $ http PATCH http://localhost:24817/pulp/api/v3/distributions/1/ content_guard=${GUARD_HREF}``\n\n.. code:: json\n\n {\n ...\n \"_href\": \"/pulp/api/v3/distributions/0fbb102a-cb38-4d5c-afc2-b9a76e862a1d/\"\n ...\n }\n\n\nDownload ``protected`` content\n------------------------------\n\nThe following examples assume there is a file named ``1.iso`` published under the ``files`` distribution.\nFurther, they assume there is a PEM encoded client certificate at ``~/client.pem`` signed by the CA at ``~/ca.pem``.\nAnd, a PEM encoded private key at ``~/key.pem``.\n\n\nExample of GET directly to the content application running on port 24816 over HTTP. When setting the\n``SSL-CLIENT-CERTIFICATE`` manually, the newlines need to be stripped due to restrictions\non legal characters in HTTP header values.\n\n``$ http localhost:24816/pulp/content/files/1.iso SSL-CLIENT-CERTIFICATE:\"$(tr -d '\\n' < ~/client.pem)\"``\n\n.. code-block::\n\n +-----------------------------------------+\n | NOTE: binary data not shown in terminal |\n +-----------------------------------------+\n\n\nExample of GET through a reverse proxy using HTTPS (like apache or nginx) in front of the content\napplication. It's assumed that the reverse proxy has been configured to set the SSL-CLIENT-CERTIFICATE\nheader using the client certificate exchanged as part of the SSL negotiation.\n\n``$ http https://localhost/pulp/content/files/1.iso --cert=~/client.pem --cert-key=~/key.pem --verify=no``\n\n.. code-block::\n\n +-----------------------------------------+\n | NOTE: binary data not shown in terminal |\n +-----------------------------------------+\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://www.pulpproject.org",
"keywords": "",
"license": "GPLv2+",
"maintainer": "",
"maintainer_email": "",
"name": "pulp-certguard",
"package_url": "https://pypi.org/project/pulp-certguard/",
"platform": "",
"project_url": "https://pypi.org/project/pulp-certguard/",
"project_urls": {
"Homepage": "http://www.pulpproject.org"
},
"release_url": "https://pypi.org/project/pulp-certguard/0.1.0rc2/",
"requires_dist": [
"pulpcore-plugin (~=0.1rc1)",
"PyOpenSSL"
],
"requires_python": ">=3.6",
"summary": "X.509 Certguards plugin for the Pulp Project",
"version": "0.1.0rc2"
},
"last_serial": 5864074,
"releases": {
"0.1.0rc1": [
{
"comment_text": "",
"digests": {
"md5": "675eb0f61f89ad4ea09dabcef9ab2128",
"sha256": "5720c037fe1bd78451d30e28e429a06e417a7c800ba16138f1c7d86eec7eb502"
},
"downloads": -1,
"filename": "pulp_certguard-0.1.0rc1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "675eb0f61f89ad4ea09dabcef9ab2128",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 17205,
"upload_time": "2019-03-29T20:02:30",
"url": "https://files.pythonhosted.org/packages/fd/65/380448b7c1c784008950050f4642367c21ae3bb0f1880dc82364623bdc43/pulp_certguard-0.1.0rc1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "bc8b412407d1e67fa40b969d70a2b61d",
"sha256": "4b32ba7501b8dfbd773e7aeeff6c409acf348e4c79c7d0e739c9f2d8be91f9b7"
},
"downloads": -1,
"filename": "pulp-certguard-0.1.0rc1.tar.gz",
"has_sig": false,
"md5_digest": "bc8b412407d1e67fa40b969d70a2b61d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 15622,
"upload_time": "2019-03-29T20:02:32",
"url": "https://files.pythonhosted.org/packages/20/36/b1927be375a417ca5fba65037e4ba0bb4ca49e62a49ab2ca3bff09fd1930/pulp-certguard-0.1.0rc1.tar.gz"
}
],
"0.1.0rc2": [
{
"comment_text": "",
"digests": {
"md5": "271f947a45cf597e705840346cb9eb6d",
"sha256": "4a1d0efc120bb1a5f4daab42b7b1376600de8614c4b11dceb66be76b85ea11ed"
},
"downloads": -1,
"filename": "pulp_certguard-0.1.0rc2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "271f947a45cf597e705840346cb9eb6d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 18413,
"upload_time": "2019-09-20T20:41:45",
"url": "https://files.pythonhosted.org/packages/d3/56/be235c9400c82ec65293794eaf53954384e52a8c213dcc77a8cf406de668/pulp_certguard-0.1.0rc2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fa41cea697db877a612b16d43113951f",
"sha256": "c0ac11439154dc7b7e2f1ef6030bd40989b6fd4faf2ce911e81cd875fa98d17e"
},
"downloads": -1,
"filename": "pulp-certguard-0.1.0rc2.tar.gz",
"has_sig": false,
"md5_digest": "fa41cea697db877a612b16d43113951f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 15999,
"upload_time": "2019-09-20T20:41:46",
"url": "https://files.pythonhosted.org/packages/eb/cc/8e4c8f89f8ddab2046f2640e260e243ff847784945513343992c25401eb5/pulp-certguard-0.1.0rc2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "271f947a45cf597e705840346cb9eb6d",
"sha256": "4a1d0efc120bb1a5f4daab42b7b1376600de8614c4b11dceb66be76b85ea11ed"
},
"downloads": -1,
"filename": "pulp_certguard-0.1.0rc2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "271f947a45cf597e705840346cb9eb6d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 18413,
"upload_time": "2019-09-20T20:41:45",
"url": "https://files.pythonhosted.org/packages/d3/56/be235c9400c82ec65293794eaf53954384e52a8c213dcc77a8cf406de668/pulp_certguard-0.1.0rc2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fa41cea697db877a612b16d43113951f",
"sha256": "c0ac11439154dc7b7e2f1ef6030bd40989b6fd4faf2ce911e81cd875fa98d17e"
},
"downloads": -1,
"filename": "pulp-certguard-0.1.0rc2.tar.gz",
"has_sig": false,
"md5_digest": "fa41cea697db877a612b16d43113951f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 15999,
"upload_time": "2019-09-20T20:41:46",
"url": "https://files.pythonhosted.org/packages/eb/cc/8e4c8f89f8ddab2046f2640e260e243ff847784945513343992c25401eb5/pulp-certguard-0.1.0rc2.tar.gz"
}
]
}