2016-04-14 10 views
0

J'ai un moteur OpenSSL RSA fonctionnel (c'est-à-dire un fichier .so) et un serveur Apache configuré en mode SSL.
Comment puis-je faire en sorte que Apache utilise l'implémentation RSA de mon moteur RSA? En d'autres termes: Où dois-je mettre le moteur (fichier .so), comment puis-je modifier le fichier openssl.cnf et comment puis-je construire l'Apache?Configurer le serveur Apache pour utiliser OpenSSL Engine spécifique

+2

[Moteur OpenSSL personnalisé lors de l'exécution dans Apache via mod_ssl] (http://unix.stackexchange.com/q/180343) sur Unix & Linux Stack Exchange et [Intégration d'Apache avec le périphérique PKCS # 11 via engine_pkcs11 et OpenSSL] (http://serverfault.com/q/711580) sur une erreur de serveur. – jww

+0

Bonjour jww, j'ai déjà lu le premier lien que vous avez fourni, mais je ne sais pas comment modifier le fichier 'openssl.cnf'. Pensez-vous que [this] (https://www.openssl.org/docs/manmaster/apps/config.html) serait un bon début? –

+0

@jww J'ai modifié le 'openssl.cnf' fichier et j'ai ajouté mon moteur comme indiqué dans le lien que j'avais fourni dans le commentaire précédent. [Documentation Apache] (http://httpd.apache.org/docs/current/mod/mod_ssl.html#sslcryptodevice) dit "Pour découvrir quels moteurs sont supportés, lancez la commande" openssl engine "", mais mon identifiant de moteur n'apparaît pas dans la liste. Comment puis-je réparer cela? –

Répondre

0

étapes qui a fonctionné pour moi:

OpenSSL 1.Installer de sources, en précisant -DOPENSSL_LOAD_CONF lors de l'exécution ./config
1.1.Create/construire votre moteur OpenSSL et l'ajouter à votre fichier openssl.cnf
2.Installez httpd sources, l'utilisation de ces commandes:

CFLAGS='-DSSL_EXPERIMENTAL_ENGINE -DSSL_ENGINE -DOPENSSL_LOAD_CONF' ./configure --enable-ssl --with-ssl=/usr/local/ssl --with-pcre=/usr/local/pcre --enable-so  
make  
make install 

2.1.Edit httpd-ssl.conf en ajoutant SSLCryptoDevice engine_id et assurez-vous que lorsque exécuter $ openssl engine, le engine_id spécificateur apparaît dans la liste. En outre, vous devez créer des cerificate auto-signé et une clé privée, modifiez le fichier httpd.conf, mais ce n'est pas l'objet de cette question. Recherche: comment configurer HTTPS sur Apache.
3. $ httpd -k restart et c'est tout.

EDIT
doit être spécifié dans openssl.cnf Le lieu de fichier .so (Openssl MOTEUR).

1

Pour commencer, je ne comprends pas parfaitement votre question. Je présume que vous voulez dire que vous avez une version d'OpenSSL installée sur votre système qu'Apache utilise et que vous voulez utiliser une version différente (vraisemblablement plus récente) que vous avez également téléchargée et installée?

Cela dépend vraiment de la plate-forme (Windows ou Linux), comment vous avez installé Apache (pré-installé sur le système, via un gestionnaire de paquets comme yum ou apt-get, ou manuellement installé depuis la source). Les progiciels préfabriqués comme ceux des installations Windows et les gestionnaires de paquets ont tendance à utiliser la bibliothèque SSL par défaut du système et ne sont pas les plus faciles à changer (même si je ne les connais pas tous pour être honnête). La façon la plus simple de procéder est donc d'installer Apache à partir du code source plutôt que d'un paquetage prédéfini.

Vous devez normalement régler ce au moment de la compilation, après avoir téléchargé la source, en utilisant l'option --with-ssl pour configurer avant d'utiliser make pour construire votre code:

./configure --with-ssl=/usr/local/ssl --enable-ssl --enable-so 

Si vous ne l'avez pas installé de la source avant alors cela peut être un peu intimidant. J'ai donné des instructions détaillées sur un article de blog ici sur HTTP2 sur la façon de télécharger et d'installer les derniers OpenSSL et Apache à partir de la source sur Linux: https://www.tunetheweb.com/performance/http2/ mais il peut y avoir de meilleures options sur votre plate-forme spécifique.

+0

Je ne pense pas très bien comprendre. Donc, quand j'essaie d'installer Apache, je devrais utiliser ce que vous avez indiqué dans la réponse ci-dessus? –

+0

J'ai élargi ma réponse. –

+0

Je ne souhaite pas utiliser une version OpenSSL différente. Je veux juste intégrer un [moteur OpenSSL] (https://www.openssl.org/docs/manmaster/crypto/engine.html) afin d'utiliser une implémentation différente de l'algorithme RSA –