2010-12-02 22 views
1

Je veux un moyen simple de créer un SSLServerSocket. Je voudrais qu'un certificat autosigné soit généré et utilisé au moment de l'exécution car les données doivent être protégées, mais ce n'est pas très important qu'il soit très, très sécurisé.Meilleure façon de faire SSLSocketServer (génération de certificat à l'exécution)

J'ai trouvé des tutoriels sur la création d'un SSLServerSocket mais ils supposent que vous avez un certificat approprié.

Le code de pseudo, les exemples de code et un paragraphe simple sont toutes des réponses acceptables.

+1

Pourquoi devez-vous le créer lors de l'exécution? Vous en avez seulement besoin pour la durée de vie du serveur, modulo ciertifcate expiration. – EJP

+0

sûr, mais il doit être fait au moment de l'exécution au moins une fois ... –

+0

Hmm .. bonne question. Vous vous demandez comment la génération est compliquée? Je suppose que c'est dans le sens de trouver de très grands nombres premiers. –

Répondre

0

La méthode la plus simple consiste à appeler un programme externe. openssl est un excellent outil pour beaucoup de choses de chiffrement ... Faire un certificat auto signé avec:

openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout www.example.com.pem -out www.example.com.pem 

Vous pouvez exécuter cette génération avec Runtime.exec() ou en utilisant un ProcessBuilder.

+0

Ceci est un serveur intégré qui doit fonctionner sur plusieurs plates-formes. est-il impossible que cela puisse être fait avec Java? –

0

Normalement, le certificat auto-signé n'a aucun sens s'il est généré à chaque exécution du serveur. Il est préférable de créer un certificat auto-signé une fois (lors de la configuration du serveur, par exemple) et c'est tout.

Il existe une description et une description des certificats auto-signés pour sécuriser la communication in this StackOverflow topic. Veuillez le lire également, car il répond également à votre question.