You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# [Name of Project][build badges go here when available]
3
+
# New Relic Infrastructure Public Keys
4
4
5
5
>[Brief description - what is the project and value does it provide? How often should users expect to get releases? How is versioning set up? Where does this project want to go?]
6
6
7
7
## Installation
8
8
9
9
> [Include a step-by-step procedure on how to get your code installed. Be sure to include any third-party dependencies that need to be installed separately]
10
10
11
-
## Getting Started
12
-
>[Simple steps to start working with the software similar to a "Hello World"]
13
-
14
11
## Usage
15
12
>[**Optional** - Include more thorough instructions on how to use the software. This section might not be needed if the Getting Started section is enough. Remove this section if it's not needed.]
16
13
17
-
18
-
## Building
19
-
20
-
>[**Optional** - Include this section if users will need to follow specific instructions to build the software from source. Be sure to include any third party build dependencies that need to be installed separately. Remove this section if it's not needed.]
21
-
22
-
## Testing
23
-
24
-
>[**Optional** - Include instructions on how to run tests if we include tests with the codebase. Remove this section if it's not needed.]
25
-
26
14
## Support
27
15
28
16
New Relic hosts and moderates an online forum where customers can interact with New Relic employees as well as other customers to get help and share best practices. Like all official New Relic open source projects, there's a related Community topic in the New Relic Explorers Hub. You can find this project's topic/threads here:
@@ -48,3 +36,36 @@ To all contributors, we thank you! Without your contribution, this project woul
48
36
## License
49
37
[Project Name] is licensed under the [Apache 2.0](http://apache.org/licenses/LICENSE-2.0.txt) License.
50
38
>[If applicable: The [project name] also uses source code from third-party libraries. You can find full details on which libraries are used and the terms under which they are licensed in the third-party notices document.]
39
+
40
+
41
+
---
42
+
43
+
# New Relic Public Keys
44
+
This project consists on building a debian package, `newrelic-infra-public-keys`, which contains the public key for both the
45
+
key that is currently be used for signing (“current key”), and the key that will be used after the rotation takes place
46
+
(“future key”). The future key is generated in advance, but not used to sign packages until a reasonable time
47
+
(“update window”) passes.
48
+
49
+
`newrelic-infra-public-keys` would be a dependency of all New Relic core packages. As users upgrade packages, they will get the
50
+
latest version of newrelic-infra-public-keys, which adds to their system’s truststore the future key. After the update window
51
+
passes, New Relic will start to sign packages and repository metadata with the future key, effectively making it the
52
+
current key. The previous current key ("old key") is removed from the newrelic-infra-public-keys package, and a new future
53
+
key is generated and added to the package.
54
+
55
+
The following diagram illustrates the process. In State 1, 0xAAAA is the current key, and 0xBBBB the future key. All NR
56
+
packages are signed with 0xAAAA, but the newrelic-infra-public-keys package is already deploying 0xBBBB as a valid key. After
57
+
some time passes, State 2 is reached when 0xBBBB becomes the current key and packages start to get signed with it. A new
58
+
key, 0xCCCC is generated and its public counterpart deployed, and the process restarts with 0xBBBB being the current key
0 commit comments