Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Terminazione di HTTPS su EC2 istanze che eseguono Python

Modalità Focus
Terminazione di HTTPS su EC2 istanze che eseguono Python - AWS Elastic Beanstalk

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per i tipi di container Python che utilizzano Apache HTTP Server con l'interfaccia WSGI (Web Server Gateway Interface), devi utilizzare un file di configurazione per consentire ad Apache HTTP Server di utilizzare HTTPS.

Aggiungi il seguente frammento al file di configurazione, sostituendo i segnaposto di certificato e chiave privata come indicato, quindi salvalo nella directory .ebextensions del bundle di origine. Il file di configurazione esegue le seguenti attività:

  • La chiave packages utilizza yum per installare mod24_ssl.

  • La chiave files crea i seguenti file sull'istanza:

    /etc/httpd/conf.d/ssl.conf

    Configura il server Apache. Se la tua applicazione non è denominata application.py, sostituisci il testo evidenziato nel valore per WSGIScriptAlias con il percorso locale alla tua applicazione. Ad esempio, un'applicazione django può essere in django/wsgi.py. La posizione deve corrispondere al valore dell'opzione WSGIPath impostata per il tuo ambiente.

    A seconda dei requisiti dell'applicazione, potrebbe essere necessario aggiungere anche altre directory al parametro python-path.

    /etc/pki/tls/certs/server.crt

    Crea il file di certificato sull'istanza. certificate file contentsSostituiscilo con il contenuto del tuo certificato.

    Nota

    YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

    Se disponi di certificati intermedi, includili in server.crt dopo il certificato del sito.

    -----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- first intermediate certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- second intermediate certificate -----END CERTIFICATE-----
    /etc/pki/tls/certs/server.key

    Crea il file della chiave privata sull'istanza. Sostituiscilo private key contents con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato.

  • La chiave container_commands interrompe il servizio httpd dopo che tutto è stato configurato in modo che il servizio utilizzi il nuovo certificato e il nuovo file https.conf.

Nota

L'esempio funziona solo in ambienti che utilizzano la piattaforma Python.

Esempio .ebextensions/https-instance.config
packages: yum: mod24_ssl : [] files: /etc/httpd/conf.d/ssl.conf: mode: "000644" owner: root group: root content: | LoadModule wsgi_module modules/mod_wsgi.so WSGIPythonHome /opt/python/run/baselinenv WSGISocketPrefix run/wsgi WSGIRestrictEmbedded On Listen 443 <VirtualHost *:443> SSLEngine on SSLCertificateFile "/etc/pki/tls/certs/server.crt" SSLCertificateKeyFile "/etc/pki/tls/certs/server.key" Alias /static/ /opt/python/current/app/static/ <Directory /opt/python/current/app/static> Order allow,deny Allow from all </Directory> WSGIScriptAlias / /opt/python/current/app/application.py <Directory /opt/python/current/app> Require all granted </Directory> WSGIDaemonProcess wsgi-ssl processes=1 threads=15 display-name=%{GROUP} \ python-path=/opt/python/current/app \ python-home=/opt/python/run/venv \ home=/opt/python/current/app \ user=wsgi \ group=wsgi WSGIProcessGroup wsgi-ssl </VirtualHost> /etc/pki/tls/certs/server.crt: mode: "000400" owner: root group: root content: | -----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- /etc/pki/tls/certs/server.key: mode: "000400" owner: root group: root content: | -----BEGIN RSA PRIVATE KEY----- private key contents # See note below. -----END RSA PRIVATE KEY----- container_commands: 01killhttpd: command: "killall httpd" 02waitforhttpddeath: command: "sleep 3"
Nota

Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consulta Archiviazione di chiavi private in modo sicuro in Amazon S3.

In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una AWS CloudFormation funzione e vi aggiunge una regola.

Esempio .ebextensions/ https-instance-single .config
Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 CidrIp: 0.0.0.0/0

Per un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far passare il traffico sicuro in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia. end-to-end

Argomento successivo:

HTTPS su Ruby

Argomento precedente:

HTTPS su PHP
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.