GithubHelp home page GithubHelp logo

Comments (2)

davidjwbbc avatar davidjwbbc commented on September 14, 2024 1

Certificates (for the purposes here a certificate includes the public certificate, private key and any intermediate CA certificates) would normally be pushed from the AF to the AS via the M3 interface. At present we don't have an M3 interface, so until we do I propose that the the certificates are configured using a JSON configuration file which is a simple mapping of certificate Ids to PEM files on the local system. Later on this mapping will be derived from certificates registered with the AS via M3 and will require the AS to store the certificates locally and maintain this mapping.

Example certificates.json:

{
  "cert1": "/var/lib/5gms/as/certificates/cert1.pem"
}

This will then allow the ContentHostingConfiguration to reference the certificate to provide an https distribution point:

{
  "name": "Big Buck Bunny",
  "ingestConfiguration": {
    "pull": true,
    "protocol": "urn:3gpp:5gms:content-protocol:http-pull-ingest",
    "entryPoint": "https://ftp.itec.aau.at/"
  },
  "distributionConfigurations": [
    {
      "canonicalDomainName": "localhost",
      "domainNameAlias": "",
      "certificateId": "cert1",
      "pathRewriteRules": [
	{
	  "requestPattern": "^/m4d/provisioning-session-[^/]*/",
	  "mappedPath": "/datasets/DASHDataset2014/BigBuckBunny/4sec/"
	}
      ]
    }
  ]
}

...or for both HTTP and HTTPS:

{
  "name": "Big Buck Bunny",
  "ingestConfiguration": {
    "pull": true,
    "protocol": "urn:3gpp:5gms:content-protocol:http-pull-ingest",
    "entryPoint": "https://ftp.itec.aau.at/"
  },
  "distributionConfigurations": [
    {
      "canonicalDomainName": "localhost",
      "domainNameAlias": "",
      "pathRewriteRules": [
	{
	  "requestPattern": "^/m4d/provisioning-session-[^/]*/",
	  "mappedPath": "/datasets/DASHDataset2014/BigBuckBunny/4sec/"
	}
      ]
    },
    {
      "canonicalDomainName": "localhost",
      "domainNameAlias": "",
      "certificateId": "cert1",
      "pathRewriteRules": [
	{
	  "requestPattern": "^/m4d/provisioning-session-[^/]*/",
	  "mappedPath": "/datasets/DASHDataset2014/BigBuckBunny/4sec/"
	}
      ]
    }
  ]
}

The certificates JSON file can be provided as an optional second command line option to the application server process:

Syntax: 5gms-application-server [-h] [-c <config>] <ContentHostingConfiguration-JSON-file> [<certificates-JSON-file>]

This maintains compatibility with MVP#1.

If a "certificateId" property is present in the ContentHostingConfiguration that does not match an Id from the certificates file (or if the certificates filename is not given) then the program will abort with a configuration error.

from rt-5gms-application-server.

rjb1000 avatar rjb1000 commented on September 14, 2024

@davidjwbbc: To emphasise that certificateId is alphanumeric, I suggest we change the name to something like cert1 in this initial implementation.

(In the longer term, it would be nice for our implementation of the M1 Server Certificates Provisioning API to extract the certificate serial number from the X.509 PEM bundle and use the ASCII hex representation of that, padded out to 40 nybbles, as the value of certificateId.)

from rt-5gms-application-server.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.