Skip to content

Store dynamic keys on the VPN server #1669

@emohandesi

Description

@emohandesi

Is there an existing issue that is already proposing this?

  • I have searched the existing issues

Application

Outline Manager

What are you trying to do? What is your use case?

Storing the dynamic keys on the VPN server removes a 3rd party dynamic key storage server, which has the benefit of reducing an additional single point of failure.
For example, when the internet shutdown happened in Iran during the 2025 Iran-Israel war, well-known web addresses such as AWS, Google Docs, etc., were blocked, and users could not get the dynamic keys to connect to the VPN server. Storing the keys on the server removes the dependence on such 3rd party services.

Is your feature request related to a problem? Please describe it.

Described above.

Describe the solution you'd like.

Create an HTTPS server on the VPN server when the install_server.sh is run on it to provide the dynamic keys using that.

  • The default port of the HTTPS server can be 8443 since users usually use port 443 for the VPN server. In addition, an option can be given to the user to set the port number.
  • Creating an HTTPS server requires a bunch of questions that are asked from the user. The same prompts can be shown to the user to respond. This needs to be streamlined so that the user is asked those questions right after the install_server.sh script is run.
  • A new option needs to be added to the install_server.sh script to enable HTTPS server creation. By default, the HTTPS server creation should be turned off.
  • In addition to the new option added to install_server.sh script, a question is added that asks the user to see if they want to set up the HTTPS server when install_server.sh script is run.
  • When an access key is created on the Outline Manager, a corresponding dynamic key is also created. The path of the key is the password of the static key. The following is a sample dynamic key address. Please note that Dds9Aghq5rxnsu3Yye9jNn is the password of the key which is used both in this URL and the password field inside the dynamic key content, or when the static key is Base64 decoded.
ssconf://sub1.domain.com/Dds9Aghq5rxnsu3Yye9jNn
  • When an access key is viewed on the Outline Manager, the dynamic key is also shown in addition to the static key, and you have the option of copying either of them to the clipboard, as shown below:
Image

Describe alternatives you've considered

#2539 can be an alternative to this solution, but support for both of them is needed, as they are complementary to each other.

Metadata

Metadata

Assignees

No one assigned

    Labels

    key/distributionissues related to distributing access keyskey/managementissues related to managing access keys

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions