web-dev-qa-db-fra.com

Comment autoriser HTTPS pour Apache sur localhost?

On m'a demandé de configurer HTTPS avec un certificat auto-signé sur Apache sur localhost, mais comment puis-je le faire? Je n'en ai aucune idée.

187
KennC.

Je viens de tenter ceci - je devais tester du code de développement sur mon hôte local Apache sous Windows . C'était WAAAY plus difficile que cela ne devrait être. Mais voici les étapes qui ont réussi à travailler après beaucoup de cheveux épilation ...

J'ai trouvé que mon installation d'Apache est fournie avec openssl.exe, ce qui est utile. Si vous n'en avez pas, vous devrez le télécharger. Ma copie se trouvait dans le dossier _Apache2\bin_ et voici comment je la référence ci-dessous.

Pas:

  1. Assurez-vous que vous avez des autorisations d'écriture sur votre dossier de configuration Apache.
  2. Ouvrez une invite de commande dans le dossier _Apache2\conf_
  3. Type
    _..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem_
  4. Vous pouvez laisser toutes les questions en blanc sauf:

    • PEM Passphrase: un mot de passe temporaire tel que "mot de passe"
    • Nom commun: le nom d'hôte de votre serveur

  5. Lorsque cela est terminé, tapez
    _..\bin\openssl rsa -in blarg.pem -out blarg.key_

  6. Générez votre certificat auto-signé en tapant:
    _..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365_

  7. Ouvrez le fichier _conf\httpd.conf_ d'Apache et assurez-vous que le module SSL est activé - il ne devrait pas y avoir de hachage au début de cette ligne:
    _LoadModule ssl_module modules/mod_ssl.so_

  8. Certaines installations Apache placent la configuration SSL dans un fichier séparé. Si tel est le cas, assurez-vous que le fichier de configuration SSL est en cours d’inclusion. Dans mon cas, j'ai dû décommenter cette ligne:
    _Include conf/extra/httpd-ssl.conf_

  9. Dans la configuration SSL _httpd-ssl.conf_, je devais mettre à jour les lignes suivantes:

    • Mise à jour
      SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"
      à
      SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)"
      (Les crochets dans le chemin confondent le module, nous devons donc leur échapper)
    • DocumentRoot - définissez ceci dans le dossier de vos fichiers Web
    • ServerName - le nom d'hôte du serveur
    • _SSLCertificateFile "conf/blarg.cert"_
    • _SSLCertificateKeyFile "conf/blarg.key"_

  10. Redémarrez Apache.

  11. Essayez de charger _https://localhost/_ dans votre navigateur.

J'espère que vous avez réussi jusqu'ici. N'hésitez pas à mettre à jour ce message avec d'autres informations utiles.

(avec la permission de Neil Obremski et son aide article - bien que tout à fait obsolète.)

127
Simon East

J'utilise ngrok ( https://ngrok.com/ ) pour cela. ngrok est un outil de ligne de commande qui permet de créer un tunnel pour localhost. Il crée une connexion http et https. Après l'avoir téléchargé, vous devez exécuter la commande suivante:

ngrok http 80

(Dans la version 2, la syntaxe est la suivante: ngrok http 80. Dans la version 2, tout port peut être tunnelisé.)

Après quelques secondes, il donnera deux urls:

http://a_hexadecimal_number.ngrok.com
https://a_hexadecimal_number.ngrok.com

Maintenant, les deux URL pointent vers l'hôte local.

56
sudip

voici le moyen le plus simple de le faire

copiez d’abord ces fichiers server.crt & server.key (trouver en pièce jointe) dans votre répertoire Apache/conf/ssl

puis ouvrez le fichier httpd.conf et ajoutez la ligne suivante

Listen 80
Listen 443

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:443>
    DocumentRoot "d:/wamp/www"  #your wamp www root dir
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "d:/wamp/bin/Apache/Apache2.4.4/conf/ssl/server.crt"
    SSLCertificateKeyFile "d:/wamp/bin/Apache/Apache2.4.4/conf/ssl/server.key"
</VirtualHost>
23
Anil Gupta

Afin de protéger la sécurité des informations envoyées vers et depuis votre serveur Web, il est judicieux d'activer le cryptage des communications entre les clients et le serveur. Cela s'appelle souvent SSL.

Configurons donc HTTPS avec un certificat auto-signé sur Apache2. Je vais énumérer les étapes à suivre:

  • Installez le serveur Web Apache2 sur votre ordinateur. Pour la machine Linux ouvrez le terminal et tapez

Sudo apt-get installer Apache2

  • Une fois l'installation réussie, vérifiez l'état du service Apache2 en exécutant la commande.

Sudo service statut Apache2

Il devrait sortir

Apache2 service status

  • Naviguez jusqu'au navigateur et tapez

http: // localhost: 8

Vérifiez que vous obtenez la page par défaut pour Apache2 comme ceci.

default output of Apache2

  • Pour chiffrer une connexion Web, nous avons besoin d'un certificat de CA (autorité de certification) ou nous pouvons utiliser des certificats auto-signés. Créons un certificat auto-signé à l'aide de la commande suivante.

openssl req -x509 -newkey rsa: 2048 -keyout mykey.key -out mycert.pem -days 365 -nodes

S'il vous plaît remplir les informations en conséquence, comme indiqué ci-dessous.

create self signed certificate using openssl

mykey.key et mycert.pem doivent être créés dans votre travail actuel. annuaire.

  • Ce serait bien de déplacer les certificats et les clés dans un lieu commun et il sera facile pour le serveur Web Apache2 de les trouver. Alors exécutons les commandes suivantes

Sudo cp mycert.pem/etc/ssl/certs

Sudo cp mykey.key/etc/ssl/private

  • Activons le mode SSL sur votre serveur

Sudo a2enmod ssl

Il devrait sortir comme ça

enable ssl

  • Configurons Apache2 pour utiliser le certificat et la clé auto-signés que nous avons générés ci-dessus.

Sudo vi /etc/Apache2/sites-available/default-ssl.conf

Veuillez trouver ces deux lignes et les remplacer par vos chemins de certificats et de clés.

Initial

default-conf

Final

after config changes

  • Activer le site

cd/etc/Apache2/sites-available /

Sudo a2ensite default-ssl.conf

  • Redémarrez le service Apache2

Service Sudo Apache2 redémarrer

  • Vérifiez le serveur Web Apache2 sur HTTPS. Ouvrez à nouveau votre navigateur et tapez

https: // localhost: 44

Cela devrait produire quelque chose comme ceci avec un avertissement que la page que vous êtes sur le point de regarder n'est pas sécurisée, car nous avons configuré le serveur avec un certificat auto-signé.

enter image description here

  • Félicitations, vous avez configuré votre point de terminaison Apache2 avec HTTPS, cliquez maintenant sur avancé -> ajoutez une exception -> confirme l'exception de sécurité , vous verrez à nouveau la page par défaut.

page after adding exception

9
Dinesh Kumar

Windows + Apache 2.4, par exemple:

  1. décommentez ssl_module dans votre fichier httpd.conf.

    LoadModule ssl_module modules/mod_ssl.so
    
  2. écoutez le port 443 comme le port 80 dans votre fichier httpd.conf.

    Listen 80
    Listen 443
    
  3. décommentez Inclure les hôtes virtuels dans votre fichier httpd.conf.

    # Virtual hosts
    Include conf/extra/httpd-vhosts.conf
    
  4. ajoutez VirtualHost dans votre conf/extra/httpd-vhosts.conf

    <VirtualHost _default_:443>
        DocumentRoot "D:/www"  #your site directory path
        ServerName localhost
        #ServerAlias localhost.com localhost2.com
        SSLEngine on
        SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
        SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
        <Directory "D:/www">
            Options -Indexes +FollowSymLinks +ExecCGI
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    

seules les lignes de numéro de port 443 et SSL...... sont différentes de la configuration http normale.

enregistrez votre fichier de configuration et redémarrez le service Apache. alors vous pouvez visiter https: // localhost /

Le navigateur Web vous avertira que c'est dangereux la première fois. Il vous suffit de choisir de continuer.

9
cuixiping

C'est en fait assez facile, en supposant que vous ayez une installation openssl à portée de main. (Sur quelle plateforme êtes-vous?)

En supposant que vous soyez sur linux/solaris/mac os/x, le mini-HOWTO Apache SSL/TLS de Van a une excellente solution que je ne vais pas reproduire ici.

Toutefois, selon le résumé, vous devez créer un certificat auto-signé. Comme vous utilisez probablement Apache pour localhost pour le développement (c’est-à-dire qu’il ne s’agit pas d’un serveur Web public), vous saurez que vous pouvez faire confiance au certificat auto-signé et ignorer les avertissements que votre navigateur vous adressera.

8
Pete Clark

Cela devrait être un travail Ubuntu, menthe similaire avec Apache2

C'est un bon guide, donc suivre ce

https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-Apache-for-ubuntu-14-04

et en laissant votre ssl.conf comme ceci ou similaire similaire

<VirtualHost _default_:443>
        ServerAdmin [email protected]
        ServerName localhost
        ServerAlias www.localhost.com

        DocumentRoot /var/www


    SSLEngine on
    SSLCertificateFile /etc/Apache2/ssl/Apache.crt
    SSLCertificateKeyFile /etc/Apache2/ssl/Apache.key

tu peux l'avoir.

J'espère que cette aide pour linuxer

4
ackuser

C'est très simple,

il suffit de lancer les commandes suivantes

Sudo a2enmod ssl

Sudo service Apache2 restart

Sudo a2ensite default-ssl.conf

Ça y est, vous avez terminé.

Si vous voulez forcer SSL (pour utiliser https toujours), éditez le fichier:

Sudo nano /etc/Apache2/sites-available/000-default.conf

et ajouter cette ligne

<VirtualHost *:80>
        . . .

        Redirect "/" "https://your_domain_or_IP/"

        . . .
</VirtualHost>

puis redémarrez à nouveau

Sudo service Apache2 restart
2
Rifaideen

Mise à jour 2019

Je poste cette réponse, car j’ai moi-même eu du mal à le faire et Chrome a mis à jour sa sécurité en exigeant Subject Alternative Name (---) que beaucoup de messages n'ont pas car ce n'était pas nécessaire quand ils ont été postés en tant que réponse. Je suppose que WAMP est déjà installé.

ÉTAPE 1

Télécharger OpenSSL Light et installer


ÉTAPE 2 (Facultatif)

Bien que cette partie soit optionnelle, elle facilite l’exécution ultérieure de commandes. Si vous ignorez cette étape, vous devrez fournir le chemin d'accès complet à openssl.exe où vous exécuterez la commande. Si vous préférez le définir, mettez à jour le chemin openssl.exe dans les variables d'environnement.

Variables d'environnement -> Variables système -> Chemin -> Edition -> Nouveau -> c:\Program Files\OpenSSL-Win64\bin


ÉTAPE 3

Créez un dossier nommé "clé" dans le répertoire c:/wamp64/bin/Apache/apache2.4.27(your version number)/conf/.

Créez un fichier de configuration pour votre autorité de certification MyCompanyCA.cnf avec son contenu (vous pouvez le modifier à vos besoins) :

[ req ]
distinguished_name  = req_distinguished_name
x509_extensions     = root_ca

[ req_distinguished_name ]
countryName             = Country Name (2 letter code)
countryName_min         = 2
countryName_max         = 2
stateOrProvinceName     = State or Province Name (full name)
localityName            = Locality Name (eg, city)
0.organizationName      = Organization Name (eg, company)
organizationalUnitName  = Organizational Unit Name (eg, section)
commonName              = Common Name (eg, fully qualified Host name)
commonName_max          = 64
emailAddress            = Email Address
emailAddress_max        = 64

[ root_ca ]
basicConstraints            = critical, CA:true

Créez le fichier de configuration des extensions MyCompanyLocalhost.ext pour votre certificat de serveur Web:

subjectAltName = @alt_names
extendedKeyUsage = serverAuth

[alt_names]
DNS.1   = localhost
DNS.2   = mycy.mycompany.com


ÉTAPE 4

Exécutez ces commandes dans l’ordre donné pour générer la clé et les certificats:

openssl req -x509 -newkey rsa:2048 -out MyCompanyCA.cer -outform PEM -keyout MyCompanyCA.pvk -days 10000 -verbose -config MyCompanyCA.cnf -nodes -sha256 -subj "/CN=MyCompany CA"
openssl req -newkey rsa:2048 -keyout MyCompanyLocalhost.pvk -out MyCompanyLocalhost.req -subj /CN=localhost -sha256 -nodes
openssl x509 -req -CA MyCompanyCA.cer -CAkey MyCompanyCA.pvk -in MyCompanyLocalhost.req -out MyCompanyLocalhost.cer -days 10000 -extfile MyCompanyLocalhost.ext -sha256 -set_serial 0x1111

En conséquence, vous aurez MyCompanyCA.cer , MyCompanyLocalhost.cer et MyCompanyLocalhost.pvk fichiers.


ÉTAPE 5

Installer MyCompanyCA.cer sous

Panneau de configuration -> Gérer les certificats utilisateur -> Autorités de certification racines de confiance -> Certificats

Pour installer MyCompanyLocalhost.cer , il suffit de double-cliquer dessus.


ÉTAPE 6

Ouvrez c:/wamp64/bin/Apache/apache2.4.27(your version number)/conf/httpd.conf et un-commentaire (supprimez le #) les 3 lignes suivantes:

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so


ÉTAPE 7

Ouvrez c:/wamp64/bin/Apache/apache2.4.37/conf/extra/httpd-ssl.conf et modifiez tous les paramètres comme indiqué ci-dessous:

Directory "c:/wamp64/www"
DocumentRoot "c:/wamp64/www"
ServerName localhost:443
ServerAdmin [email protected]
ErrorLog "c:/wamp64/bin/Apache/apache2.4.27/logs/error.log"
TransferLog "c:/wamp64/bin/Apache/apache2.4.27/logs/access.log"
SSLCertificateFile "c:/wamp64/bin/Apache/apache2.4.27/conf/key/MyCompanyLocalhost.cer"
SSLCertificateKeyFile "c:/wamp64/bin/Apache/apache2.4.27/conf/key/MyCompanyLocalhost.pvk"
SSLSessionCache "shmcb:c:/wamp64/bin/Apache/apache2.4.27/logs/ssl_scache(512000)"
CustomLog "c:/wamp64/bin/Apache/apache2.4.27/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

Remarque: C'est la partie la plus délicate. Si vous faites une petite erreur en éditant ce fichier, SSL ne fonctionnera pas. Faites-en une copie avant de la modifier.


ÉTAPE 8

Redémarrez Wamp et Chrome. L'hôte local est maintenant sécurisé: https: // localhost

1
CodeWarrior

tl; dr

ssh -R youruniquesubdomain:80:localhost:3000 serveo.net

Et votre environnement local est accessible à partir de https://youruniquesubdomain.serveo.net

Serveo est le meilleur

  • Pas d'inscription.
  • Pas d'installation.
  • A HTTPS.
  • Accessible dans le monde entier.
  • Vous pouvez spécifier un correctif personnalisé, un sous-domaine.
  • Vous pouvez l'héberger vous-même, vous pouvez donc utiliser votre propre domaine et être à l'épreuve du futur, même si le service tombe en panne.

Je ne pouvais pas croire quand j'ai trouvé ce service. Il offre tout et c'est le plus facile à utiliser. S'il y avait un outil aussi facile et indolore pour tous les problèmes ...

1
totymedli

Ce tutoriel pour CentOS était facile à suivre et ne prenait que 5 minutes environ: https://wiki.centos.org/HowTos/Https

Je ne détaillerai pas chaque étape ici, mais les étapes principales sont les suivantes:

1.) Installez le module openssl pour Apache, s'il n'est pas déjà installé

2.) Générer un certificat auto-signé

--À ce stade, vous devriez pouvoir visiter https: // localhost avec succès

3.) Configurer un hôte virtuel si nécessaire

1
KayakinKoder

Cela fonctionnait sous Windows 10 avec Apache24:

1 - Ajoutez ceci au bas de C:/Apache24/conf/httpd.conf

Listen 443
<VirtualHost *:443>
    DocumentRoot "C:/Apache24/htdocs"
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "C:/Apache24/conf/ssl/server.crt"
    SSLCertificateKeyFile "C:/Apache24/conf/ssl/server.key"
</VirtualHost>

2 - Ajoutez les fichiers server.crt et server.key dans le dossier C:/Apache24/conf/ssl. Voir les autres réponses sur cette page pour trouver ces 2 fichiers.

C'est ça!

1
jogi99

Pour ceux qui utilisent macOS, c’est un excellent guide https://getgrav.org/blog/macos-sierra-Apache-multiple-php-versions pour configurer votre environnement de développement Web local. Dans sa 3ème partie https://getgrav.org/blog/macos-sierra-Apache-ssl Andy Miller explique comment configurer Apache avec un certificat auto-signé:

C'est la commande clé:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt

Mais il y a quelques étapes à suivre, alors jetez-y un coup d'œil et bonne chance! ;)

0
tiomno

J'aimerais ajouter quelque chose à la très bonne réponse de @CodeWarrior, qui fonctionne parfaitement sur Chrome, mais nécessite une étape supplémentaire pour Firefox.

Étant donné que Firefox n'utilise pas les certificats d'autorité de certification que Windows applique par défaut, vous devez utiliser about:config, faire défiler jusqu'à security.enterprise_roots.enabled et le définir sur true.

Votre certificat doit maintenant être considéré comme valide également sur Firefox.

Bien sûr, cela n’est que pour le développement, car la confiance de SSL est un problème de sécurité critique et ne changez ces paramètres que si vous connaissez les implications.

0
RDev

Exécuter Apache sur Windows 10 ici. Je ne pouvais pas faire en sorte que Chrome fasse confiance au certificat fourni par Simon dans la première réponse. J'ai fini par utiliser PowerShell pour générer un certificat auto-signé.

Étape 1 - Générer un certificat auto-signé

Dans PowerShell
New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My" 1

Étape 2 - Configurer et exporter le certificat

Tapez Certificate dans la barre de recherche de Windows, cliquez sur l'élément Manage Computer Certificates du panneau de configuration suggéré.

Dans le programme de gestion des certificats qui s’affiche (certlm), vous devriez maintenant voir une touche localhost sous Personal >> Certificates.

J'ai copié ce certificat dans Trusted Root Certification Authorities. Je serai honnête en ce que je ne suis pas sûr que ce soit nécessaire.

En sélectionnant le certificat nouvellement copié, double-cliquez dessus (le certificat localhost). Dans le mode Certificat, cliquez sur l'onglet Details, puis sur le bouton Copy to File....

Cela affichera et Assistant d'exportation, j'ai choisi d'exporter la clé privée, cliquez sur Suivant. J'ai aussi choisi de Export all extended properties (encore une fois, je ne suis pas certain que cela était nécessaire). J'ai choisi d'utiliser un mot de passe simple (pass) et le cryptage par défaut. Choisissez un dossier à exporter et nommez le fichier. Vous pouvez toujours déplacer et renommer le fichier si nécessaire. Par souci de simplicité, copions-le dans votre dossier conf sous votre installation Apache (dans mon cas: C:\Apache\conf) et nommez le fichier myCert (le fichier résultant sera un fichier .pfx)

Étape 3 - Convertissez le fichier .pfx à utiliser avec Apache

A partir de là, j'ai essentiellement suivi le didacticiel ici , mais je vais ajouter des instructions ici (modifiées pour nos paramètres) au cas où ce site serait en panne.

Ouvrez votre invite de commande dans le dossier /Apache/conf/]
Exécutez les commandes suivantes: Remarque: Cela suppose que vous avez openssl.exe dans le bin dossier dans le dossier racine Apache (ce devrait être standard/par défaut)

..\bin\openssl pkcs12 -in myCert.pfx -nocerts -out privateKey.pem

Ceci vous demandera un mot de passe, entrez ce que vous avez entré à l'étape 2 lors de l'exportation du fichier .pfx. Dans mon cas, c'est pass. J'ai entré le même mot de passe pour la phrase PEM et à nouveau pour vérifier. Cela créera un nouveau fichier nommé privateKey.pem dans votre dossier conf.

Ensuite, lancez

..\bin\openssl rsa -in privateKey.pem -out private.pem

De nouveau, il vous sera demandé un mot de passe (Enter pass phrase for privateKey.pem:), utilisez le mot de passe que vous avez défini pour privateKey.pem. (Dans mon cas, pass)
Vous devriez voir un message indiquant writing RSA key et un nouveau fichier nommé private.pem dans votre dossier conf/. Ce sera votre SSLCertificateKeyFile.

Maintenant pour générer le certificat de serveur correspondant. Run:

..\bin\openssl pkcs12 -in myCert.pfx -clcerts -nokeys -out EntrustCert.pem

Ceci vous demandera un mot de passe, entrez ce que vous avez entré à l'étape 2 lors de l'exportation du fichier .pfx. Entrez-le et vous aurez maintenant un fichier nommé EntrustCert.pem dans votre dossier conf. Ceci est votre SSLCertificateFile

Étape 4 - Configurer httpd.conf

Utilisez les nouveaux fichiers créés en tant que clé et certificat de votre serveur. Assurez-vous de changer la racine de votre document pour y placer vos fichiers!

ServerName localhost:80
Protocols h2 h2c http/1.1
<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

<VirtualHost _default_:443>
  ServerName localhost:443
  DocumentRoot ${SRVROOT}/htdocs/MYSITE
  SSLEngine on
  SSLCertificateFile "${SRVROOT}/conf/EntrustCert.pem"
  SSLCertificateKeyFile "${SRVROOT}/conf/private.pem"
</VirtualHost>

Aussi dans httpd.conf:

  • Assurez-vous que LoadModule ssl_module modules/mod_ssl.so n'est pas commenté (pas de # devant)
  • Décommenter LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
  • Décommenter LoadModule http2_module modules/mod_http2.so
  • Uncomment Include conf/extra/httpd-ssl.conf (REMARQUE: assurez-vous que le fichier se trouve là!)

J'ai également des bibliothèques slsl curl et open incluses:

# load curl and open ssl libraries
LoadFile "C:\php\libeay32.dll"
LoadFile "C:\php\ssleay32.dll"
LoadFile "C:\php\libssh2.dll"

Ces modules ne devraient pas être nécessaires, mais je noterai que je les ai activés:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so

Étape 5 - Config httpd-ssl.conf

Dans le dossier extra/ du dossier conf/, vous devriez voir un fichier nommé httpd-ssl.conf.

5a. Changer le DocumentRoot - Changer le DocumentRoot par défaut pour le répertoire où se trouvent vos fichiers.

5b. Modifiez la ServerName - Modifiez la ServerName par défaut (quelque chose comme www.example.com:443) en localhost:443

5c. Changer le SSLCertificateFile
Changez la SSLCertificateFile de la valeur par défaut (${SRVROOT}/conf/server.crt) en ${SRVROOT}/conf/EntrustCert.pem

5c. Changer le SSLCertificateKeyFile
Changez la SSLCertificateKeyFile de la valeur par défaut (${SRVROOT}/conf/server.key) en ${SRVROOT}/conf/private.pem

Tous ensemble, dans la balise <VirtualHost _default_:443>.

#   General setup for the virtual Host
DocumentRoot "${SRVROOT}/htdocs/MYSITE"
ServerName localhost:443
ServerAdmin [email protected]
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual Host.
SSLEngine on

#   Server Certificate:
#   Point SSLCertificateFile at a PEM encoded certificate.  If
#   the certificate is encrypted, then you will be prompted for a
#   pass phrase.  Note that a kill -HUP will Prompt again.  Keep
#   in mind that if you have both an RSA and a DSA certificate you
#   can configure both in parallel (to also allow the use of DSA
#   ciphers, etc.)
#   Some ECC cipher suites (http://www.ietf.org/rfc/rfc4492.txt)
#   require an ECC certificate which can also be configured in
#   parallel.
SSLCertificateFile "${SRVROOT}/conf/EntrustCert.pem"
#SSLCertificateFile "${SRVROOT}/conf/server-dsa.crt"
#SSLCertificateFile "${SRVROOT}/conf/server-ecc.crt"

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
#   ECC keys, when in use, can also be configured in parallel
SSLCertificateKeyFile "${SRVROOT}/conf/private.pem"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-dsa.key"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-ecc.key"

Redémarrer Apache

Après avoir effectué ces modifications, vous devriez pouvoir redémarrer Apache et accéder à https: // localhost sans avertissement de sécurité ni petit cadenas!

Secured localhost

J'espère que ça aidera quelqu'un! ????

Sources:
1.) Réponse d'Auri Rahimzadeh à la création d'un certificat auto-signé
2.) Entrust Datacard - Comment convertir un fichier .pfx pour qu’il soit utilisé avec un serveur Apache?

0
StephanieQ

Une autre méthode simple consiste à utiliser Python Server dans Ubuntu.

  1. Générez server.xml avec la commande suivante dans le terminal:

    openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes

    Remarque: En supposant que vous avez openssl installé.

  2. Enregistrez le code ci-dessous dans un fichier nommé simple-https-server.py dans le répertoire de votre choix pour exécuter le serveur.

    import BaseHTTPServer, SimpleHTTPServer
    import ssl
    
    httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
    httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./server.pem', server_side=True)
    httpd.serve_forever()
    
  3. Exécutez le serveur à partir du terminal:

    python simple-https-server.py

  4. Visitez la page à:

    https://localhost:4443

Notes supplémentaires: :

  1. Vous pouvez modifier le port dans le fichier simple-https-server.py en ligne.

    httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)

  2. Vous pouvez changer localhost en votre IP dans la même ligne que ci-dessus:

    httpd = BaseHTTPServer.HTTPServer(('10.7.1.3', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)

    et accédez à la page sur n’importe quel appareil connecté à votre réseau. Ceci est très pratique dans des cas tels que "vous devez tester l’API HTML5 GeoLocation dans un mobile et Chrome restreint l’API dans les connexions sécurisées uniquement".

Gist: https://Gist.github.com/dergachev/7028596

http://www.piware.de/2011/01/creating-an-https-server-in-python/

0
Asim K T