Use o Serveo ! ssh -R youruniquesubdomain:80:localhost:3000 serveo.netDê um tapa no seu subdomínio e número da porta e você estará pronto para continuarhttps://youruniquesubdomain.serveo.net
totymedli
Respostas:
135
Acabei de tentar isso - eu precisava testar algum código de desenvolvimento no meu host local Apache no Windows . Isso foi muito mais difícil do que deveria ser. Mas aqui estão os passos que conseguiram funcionar depois de muito puxão de cabelo ...
Eu descobri que minha instalação do Apache openssl.exeé útil. Se você não tiver uma cópia, precisará fazer o download. Minha cópia estava na Apache2\binpasta, e é como eu a refiro abaixo.
Passos:
Verifique se você possui permissões de gravação na pasta conf do Apache
Abra um prompt de comando na Apache2\confpasta
Tipo ..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
Você pode deixar todas as perguntas em branco, exceto:
Senha PEM: uma senha temporária como "senha"
Nome comum: o nome do host do seu servidor
Quando isso terminar, digite ..\bin\openssl rsa -in blarg.pem -out blarg.key
Abra o conf\httpd.confarquivo do Apache e verifique se o módulo SSL está ativado - não deve haver hash no início desta linha: LoadModule ssl_module modules/mod_ssl.so
Algumas instalações do Apache colocam a configuração do SSL em um arquivo separado. Nesse caso, verifique se o arquivo conf SSL está sendo incluído. No meu caso, tive que descomentar esta linha: Include conf/extra/httpd-ssl.conf
Na configuração do SSL httpd-ssl.conf, tive que atualizar as seguintes linhas:
Atualizar SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)" para SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)" (Os colchetes no caminho confundem o módulo, portanto, precisamos escapar deles)
DocumentRoot - defina isso na pasta dos seus arquivos da web
ServerName - o nome do host do servidor
SSLCertificateFile "conf/blarg.cert"
SSLCertificateKeyFile "conf/blarg.key"
Reinicie o Apache.
Tente carregar https://localhost/no seu navegador.
Espero que você tenha chegado tão longe. Sinta-se à vontade para atualizar esta postagem com outras informações úteis.
(Screenshots cortesia de Neil Obremski e seu artigo útil - embora agora bastante desatualizado.)
Obrigado. Também tive que editar as diretivas ErrorLog, TransferLog e CustomLog para caminhos válidos, caso contrário o Apache não iniciaria.
Tamlyn
1
Por alguma razão, as instruções não funciona mais ou incompleto
Jacobian
6
Eu tive que descomentar o seguinte também no meu httpd.conf para que ele funcionasse: LoadModule socache_shmcb_module modules / mod_socache_shmcb.so
erik
1
Eu fiz mais duas etapas para fazê-lo funcionar, adicione o módulo LoadModule socache_shmcb_module modules / mod_socache_shmcb.so e no httpd-ssl.conf eu corrijo o caminho do log ssl na linha 250, CustomLog ".apache24 / logs / ssl_request.log" \
Wasim A .
5
Para gerar os arquivos .pem e .key, tive que definir 2 variáveis de ambiente na etapa 2: definir OPENSSL_CONF = C: \ caminho \ para \ apache \ Apache2.4.4 \ conf \ openssl.cnf definir RANDFILE = C: \ path \ to \ apache \ Apache2.4.4 \ conf \ .rnd
eosphere
57
Eu uso o ngrok ( https://ngrok.com/ ) para isso. O ngrok é uma ferramenta de linha de comando e cria um túnel para o host local. Ele cria a conexão http e https. Após o download, o seguinte comando precisa ser executado:
ngrok http 80
(Na versão 2, a sintaxe é: ngrok http 80. Na versão 2, qualquer porta pode ser encapsulada.)
@sudip, O código de código-fonte aberto do ngrok funciona de tal maneira que podemos hospedar isso em nosso próprio servidor sem modificações? Se não, é praticamente um desmancha-prazeres, porque é não ok para redirecionar as solicitações de usuários para um host externo como ngrok.
21715 Pacerier
2
@ Pacerier Não pretendo usá-lo no servidor. Eu o uso no host local (porque meu provedor de rede Bcz me fornece um IP dinâmico). Eu o usei pela primeira vez em testes paypal IPN e funcionou perfeitamente. Eu me pergunto por que alguém irá usá-lo no servidor e com que finalidade.
sudip 16/03/2015
@sudip, O objetivo é óbvio: Permitir que o código que funciona em HTTP também trabalhe com HTTPS sem a necessidade de codificação extra.
21715 Pacerier
1
Embora isso seja útil, parece incrivelmente inseguro permitir o acesso à sua máquina de desenvolvimento na Internet aberta. Usar algo assim faria com que você fosse demitido de um empregador consciente da segurança.
217 Andy M #
@YumYumYum. Antes, era totalmente gratuito na V 1. Mas, as portas http e https ainda estão livres na v 2 (não sei se existe alguma restrição de porta, existe um plano livre). Confira o plano gratuito aqui: ngrok.com/product#pricing
sudip 15/04/16
24
aqui é a maneira mais simples de fazer isso
copie primeiro esses arquivos server.crt e server.key (localize em anexo) no diretório apache / conf / ssl
abra o arquivo httpd.conf e adicione a seguinte linha
I tinha para permitir também o módulo LoadModule ssl_module libexec / apache2 / mod_ssl.so no (/etc/apache2/httpd.conf)
Alexey
17
Eu me pergunto o quão seguro / perigoso é o download de arquivos * .crt * .key de fontes não confiáveis, em vez de gerar os seus próprios.
precisa saber é o seguinte
4
@PetrPeller estamos a criar https para o desenvolvimento local então por que maravilha para seguros / perigosos
Anil Gupta
7
Uma explicação sobre como gerar esses arquivos seria ótima. Porque o download de arquivos de uma fonte desconhecida é uma prática ruim, mas também porque esse tipo de link será interrompido em algum momento.
Para proteger a segurança das informações enviadas para e do servidor da Web, é uma boa idéia habilitar a criptografia da comunicação entre clientes e o servidor. Isso geralmente é chamado SSL .
Então, vamos configurar o HTTPS com um certificado autoassinado no Apache2. Vou listar as etapas que você deve seguir:
Instale o servidor web apache2 em sua máquina. Para máquina Linux, abra o terminal e digite
sudo apt-get install apache2
Após a instalação bem-sucedida, verifique o status do serviço apache2 executando o comando
Verifique se você obteve a página padrão para o apache2 assim.
Para criptografar uma conexão da web, precisamos de um certificado da CA (autoridade de certificação) ou podemos usar certificados autoassinados. Vamos criar um certificado autoassinado usando o seguinte comando.
Por favor, preencha as informações conforme mostrado abaixo.
mykey.key e mycert.pem devem ser criados no seu diretório de trabalho atual.
Seria bom se movermos certificados e chaves em um local comum e será fácil para o servidor da web apache2 encontrá-los. Então, vamos executar os seguintes comandos
sudo cp mycert.pem / etc / ssl / certs
sudo cp mykey.key / etc / ssl / private
Vamos ativar o modo SSL no seu servidor
sudo a2enmod ssl
Deve sair assim
Vamos configurar o apache2 para usar certificado e chave autoassinados que geramos acima.
sudo vi /etc/apache2/sites-available/default-ssl.conf
Encontre essas duas linhas e substitua-as pelo seu certificado e caminhos principais.
Inicial
Final
Ativar o site
cd / etc / apache2 / sites-available /
sudo a2ensite default-ssl.conf
Reinicie o serviço apache2
serviço sudo reinício apache2
Verifique o servidor da web apache2 no HTTPS. Abra seu navegador novamente e digite
Deverá gerar algo assim com um aviso de que a página que você está prestes a visualizar não é segura porque configuramos o servidor com certificado autoassinado.
Parabéns, você configurou o seu apache2 com ponto de extremidade HTTPS, agora clique em avançado -> adicionar exceção -> confirmar exceção de segurança , você verá a página padrão novamente.
Prefiro não editar nenhum arquivo de configuração, se puder, por isso deixei default-ssl.confcomo está. Eu estava prestes a mudar o nome mycertpara ssl-cert-snakeoilmas esse arquivo já existe, então eu usei apenas isso! Então eu pulei com segurança duas etapas no Debian.
Rolf
@Rolf Eu concordo com você, mas na produção, é sempre o caso de usar um novo certificado e chave. Então, apenas para mostrar como eles podem ser criados, eu adicionei 2 etapas adicionais para o Debian. Obrigado :)
Dinesh Kumar
9
Windows + Apache 2.4, por exemplo:
descomente ssl_module no seu httpd.confarquivo.
LoadModule ssl_module modules/mod_ssl.so
ouça a porta 443 como a porta 80 no seu httpd.confarquivo.
Listen 80
Listen 443
descomente Inclua hosts virtuais no seu httpd.confarquivo.
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
adicione o VirtualHost no seu 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>
apenas o número da porta 443e as SSL......linhas são diferentes da configuração http normal.
salve o arquivo de configuração e reinicie o serviço apache. então você pode visitar https: // localhost /
O navegador da web avisa que não é seguro na primeira vez, basta escolher continuar.
Isso funcionou para mim no XP Home, Apache 2.4. Copiou os 2 arquivos de certificado da postagem anterior (por Anil Gupta). Mod_ssl não comentado e incluiu httpd-vhosts.conf no httpd.conf, adicionou a diretiva VirtualHost de Anil Gupta (com alguns caminhos ajustados) no httpd-vhosts.conf.
jogi99
7
Na verdade, é bastante fácil, supondo que você tenha uma instalação openssl à mão. (Em que plataforma você está?)
No entanto, o resumo executivo é que você deve criar um certificado autoassinado. Como você está executando o apache for localhost, presumivelmente para desenvolvimento (ou seja, não é um servidor público da Web), você saberá que pode confiar no certificado autoassinado e pode ignorar os avisos que seu navegador lançará para você.
Olá, estou trabalhando no sistema operacional Windows. E quanto ao certificado autoassinado, tenho que baixá-lo ou por qualquer outro meio?
KennC.
3
Não. Você mesmo fará o certificado autoassinado. Você tem a configuração apache httpd + ssl? Você precisará do ssl para fazer isso. Este site: rubayathasan.com/tutorial/apache-ssl-on-windows possui boas informações sobre como obter o SSL no Windows. Você fará algum trabalho de linha de comando, mas isso é bom para você de qualquer maneira. :-)
E você precisa correr systemctl reload apache2atrás sudo a2ensite default-ssl.conf.
até
2
Atualização de 2019
Estou postando esta resposta porque lutei com isso e o Chrome atualizou sua segurança exigindo o Nome alternativo do assunto, que muitas postagens não possuem, pois não era necessário quando foram postadas como resposta. Estou assumindo que o WAMP já está instalado.
Embora essa parte seja opcional, facilita posteriormente a execução de comandos. Se você pular esta etapa, precisará fornecer o caminho completo para o openssl.exe, onde executará o comando. Se você preferir defini-lo, atualize o caminho openssl.exe em Variáveis de ambiente.
Variáveis de ambiente -> Variáveis do sistema -> Caminho -> Editar -> Novo -> c: \ Arquivos de programas \ OpenSSL-Win64 \ bin
ETAPA 3
Crie uma pasta chamada "chave" no c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/diretório.
Crie o arquivo de configuração para o CA MyCompanyCA.cnf com o conteúdo (você pode alterá-lo conforme suas necessidades):
[ 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
Crie o arquivo de configuração de extensões MyCompanyLocalhost.ext para o certificado do servidor da web:
Sim, isso funciona. Usei as etapas 1 a 3 do StephanieQ para gerar o certificado e depois "openssl x509 -req -in server.csr -signkey server.key -out server.crt" para gerar o arquivo * .crt com o cygwin.
Você pode especificar uma correção personalizada, subdomínio.
Você pode hospedá-lo automaticamente, para poder usar seu próprio domínio e estar à prova do futuro, mesmo se o serviço for desativado.
Eu não podia acreditar quando encontrei este serviço. Oferece tudo e é o mais fácil de usar. Se houvesse uma ferramenta tão fácil e indolor para todos os problemas ...
Executando o Apache no Windows 10 aqui. Não consegui que o Chrome confiasse no certificado feito na resposta superior de Simon. O que acabei fazendo foi usar o PowerShell para gerar um certificado autoassinado.
Etapa 1 - Gerar certificado autoassinado
No PowerShell New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"1
Etapa 2 - Configurar e exportar certificado
Digite Certificatena barra de pesquisa do Windows, clique noManage Computer Certificates item do painel de controle sugerido.
No programa de Gerenciamento de Certificados que aparece (certlm), você deve ver uma localhostchave abaixo Personal >> Certificates.
Copiei este certificado para Trusted Root Certification Authorities. Serei sincero, pois não tenho certeza se isso é necessário.
Selecionando o certificado recém-copiado, clique duas vezes nele (o certificado de host local). No modal Certificado, clique na Detailsguia e no Copy to File...botão.
Isso exibirá o Assistente de Exportação; optei por exportar a chave privada, clique em Avançar. Também escolhi Export all extended properties(novamente, não tenho certeza se isso era necessário). Eu escolhi usar uma senha simples ( pass) e a criptografia padrão. Escolha uma pasta para a qual exportar e nomeie o arquivo. Você sempre pode mover e renomear o arquivo, se necessário. Por uma questão de simplicidade, copie-o para sua pasta conf na instalação do Apache (no meu caso C:\apache\conf:) e nomeie o arquivo myCert(o arquivo resultante será um .pfxarquivo)
Etapa 3 - Converter .pfxarquivo para uso com Apache
A partir daqui, basicamente segui o tutorial aqui , mas adicionarei instruções aqui (ajustadas para nossas configurações), caso o site seja desativado.
Abra o prompt de comando na /apache/conf/pasta
Execute os seguintes comandos: Nota: Isso pressupõe que você esteja openssl.exena binpasta na pasta raiz do apache (isso deve ser padrão / padrão)
Isso solicitará uma senha, digite o que você inseriu na Etapa 2 quando exportou o .pfxarquivo. No meu caso, é isso pass. Digitei a mesma senha para a frase PEM e novamente para verificar. Isso criará um novo arquivo chamado privateKey.pemna sua pasta conf.
Novamente, você será solicitado a fornecer uma senha ( Enter pass phrase for privateKey.pem:), use a senha que você definiu privateKey.pem. (No meu caso, pass)
Você deverá ver uma mensagem que diz writing RSA keye um novo arquivo chamado private.pemem sua conf/pasta. Este será o seu SSLCertificateKeyFile.
Agora, para gerar o certificado do servidor correspondente. Corre:
Isso solicitará uma senha, digite o que você inseriu na Etapa 2 quando exportou o .pfxarquivo. Digite e agora você terá um arquivo chamado EntrustCert.pemem sua confpasta. Este é o seu SSLCertificateFile
Etapa 4 - Configurar httpd.conf
Use os novos arquivos criados como a chave e o certificado do servidor. Certifique-se de alterar a raiz do documento para onde estão seus arquivos!
Remover comentário Include conf/extra/httpd-ssl.conf(NOTA: verifique se é onde está o arquivo!)
Também tenho bibliotecas curl e ssl abertas incluídas:
# load curl and open ssl libraries
LoadFile "C:\php\libeay32.dll"
LoadFile "C:\php\ssleay32.dll"
LoadFile "C:\php\libssh2.dll"
Esses módulos não devem ser necessários, mas observarei que os tenho habilitados: LoadModule rewrite_module modules/mod_rewrite.so LoadModule filter_module modules/mod_filter.so LoadModule deflate_module modules/mod_deflate.so
Etapa 5 - Configuração httpd-ssl.conf
Na extra/pasta da conf/pasta, você deverá ver um arquivo chamadohttpd-ssl.conf .
5a Altere oDocumentRoot - Altere DocumentRootdo padrão para o diretório em que seus arquivos estão.
# 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"
Reinicie o Apache
Depois de fazer essas alterações, você poderá reiniciar o Apache e navegar para https: // localhost sem um aviso de segurança e um pequeno cadeado!
e acesse a página em qualquer dispositivo conectado à sua rede. Isso é muito útil em casos como "você precisa testar a API de localização geográfica do HTML5 em um dispositivo móvel, e o Chrome restringe a API apenas em conexões seguras".
Gostaria de acrescentar algo à resposta muito boa do @CodeWarrior, que funciona perfeitamente no Chrome, mas para o Firefox precisa de uma etapa adicional.
Como o Firefox não transmite os Certificados CA do Windows, por padrão, você precisa continuar about:config, role para baixo atésecurity.enterprise_roots.enabled e altere-o para true.
Agora seu certificado deve ser visto como válido também no Firefox.
É claro que isso é apenas para fins de desenvolvimento, pois a confiança no SSL é uma preocupação crítica de segurança e altere essas configurações somente se você conhecer as implicações.
ssh -R youruniquesubdomain:80:localhost:3000 serveo.net
Dê um tapa no seu subdomínio e número da porta e você estará pronto para continuarhttps://youruniquesubdomain.serveo.net
Respostas:
Acabei de tentar isso - eu precisava testar algum código de desenvolvimento no meu host local Apache no Windows . Isso foi muito mais difícil do que deveria ser. Mas aqui estão os passos que conseguiram funcionar depois de muito puxão de cabelo ...
Eu descobri que minha instalação do Apache
openssl.exe
é útil. Se você não tiver uma cópia, precisará fazer o download. Minha cópia estava naApache2\bin
pasta, e é como eu a refiro abaixo.Passos:
Apache2\conf
pasta..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
Você pode deixar todas as perguntas em branco, exceto:
Quando isso terminar, digite
..\bin\openssl rsa -in blarg.pem -out blarg.key
Gere seu certificado autoassinado digitando:
..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365
Abra o
conf\httpd.conf
arquivo do Apache e verifique se o módulo SSL está ativado - não deve haver hash no início desta linha:LoadModule ssl_module modules/mod_ssl.so
Algumas instalações do Apache colocam a configuração do SSL em um arquivo separado. Nesse caso, verifique se o arquivo conf SSL está sendo incluído. No meu caso, tive que descomentar esta linha:
Include conf/extra/httpd-ssl.conf
Na configuração do SSL
httpd-ssl.conf
, tive que atualizar as seguintes linhas:SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"
para
SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)"
(Os colchetes no caminho confundem o módulo, portanto, precisamos escapar deles)
DocumentRoot
- defina isso na pasta dos seus arquivos da webServerName
- o nome do host do servidorSSLCertificateFile "conf/blarg.cert"
SSLCertificateKeyFile "conf/blarg.key"
Reinicie o Apache.
https://localhost/
no seu navegador.Espero que você tenha chegado tão longe. Sinta-se à vontade para atualizar esta postagem com outras informações úteis.
(Screenshots cortesia de Neil Obremski e seu artigo útil - embora agora bastante desatualizado.)
fonte
Eu uso o ngrok ( https://ngrok.com/ ) para isso. O ngrok é uma ferramenta de linha de comando e cria um túnel para o host local. Ele cria a conexão http e https. Após o download, o seguinte comando precisa ser executado:
(Na versão 2, a sintaxe é: ngrok http 80. Na versão 2, qualquer porta pode ser encapsulada.)
Após alguns segundos, ele fornecerá dois URLs:
Agora, os dois URLs apontam para o host local.
fonte
aqui é a maneira mais simples de fazer isso
copie primeiro esses arquivos server.crt e server.key (localize em anexo) no diretório apache / conf / ssl
abra o arquivo httpd.conf e adicione a seguinte linha
fonte
Para proteger a segurança das informações enviadas para e do servidor da Web, é uma boa idéia habilitar a criptografia da comunicação entre clientes e o servidor. Isso geralmente é chamado SSL .
Então, vamos configurar o HTTPS com um certificado autoassinado no Apache2. Vou listar as etapas que você deve seguir:
Deve gerar
Verifique se você obteve a página padrão para o apache2 assim.
Por favor, preencha as informações conforme mostrado abaixo.
mykey.key e mycert.pem devem ser criados no seu diretório de trabalho atual.
Deve sair assim
Encontre essas duas linhas e substitua-as pelo seu certificado e caminhos principais.
Inicial
Final
Deverá gerar algo assim com um aviso de que a página que você está prestes a visualizar não é segura porque configuramos o servidor com certificado autoassinado.
fonte
default-ssl.conf
como está. Eu estava prestes a mudar o nomemycert
parassl-cert-snakeoil
mas esse arquivo já existe, então eu usei apenas isso! Então eu pulei com segurança duas etapas no Debian.Windows + Apache 2.4, por exemplo:
descomente ssl_module no seu
httpd.conf
arquivo.ouça a porta 443 como a porta 80 no seu
httpd.conf
arquivo.descomente Inclua hosts virtuais no seu
httpd.conf
arquivo.adicione o VirtualHost no seu
conf/extra/httpd-vhosts.conf
apenas o número da porta
443
e asSSL......
linhas são diferentes da configuração http normal.salve o arquivo de configuração e reinicie o serviço apache. então você pode visitar https: // localhost /
O navegador da web avisa que não é seguro na primeira vez, basta escolher continuar.
fonte
Na verdade, é bastante fácil, supondo que você tenha uma instalação openssl à mão. (Em que plataforma você está?)
Supondo que você esteja no linux / solaris / mac os / x, o mini-HOWTO do Apache SSL / TLS da Van tem um excelente passo a passo que não reproduzirei aqui.
No entanto, o resumo executivo é que você deve criar um certificado autoassinado. Como você está executando o apache for localhost, presumivelmente para desenvolvimento (ou seja, não é um servidor público da Web), você saberá que pode confiar no certificado autoassinado e pode ignorar os avisos que seu navegador lançará para você.
fonte
Isso deve ser trabalho Ubuntu, Mint semelhante ao Apache2
É um bom guia, portanto, seguindo este
https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
e deixando seu ssl.conf assim ou similar
você pode conseguir isso.
Espero que esta ajuda para linuxer
fonte
É muito simples,
basta executar os seguintes comandos
É isso aí, você terminou.
Se você deseja forçar o SSL (para usar sempre https), edite o arquivo:
e adicione esta linha
depois reinicie novamente
fonte
systemctl reload apache2
atrássudo a2ensite default-ssl.conf
.Atualização de 2019
Estou postando esta resposta porque lutei com isso e o Chrome atualizou sua segurança exigindo o Nome alternativo do assunto, que muitas postagens não possuem, pois não era necessário quando foram postadas como resposta. Estou assumindo que o WAMP já está instalado.
PASSO 1
Baixe o OpenSSL Light e instale
PASSO 2 (Opcional)
Embora essa parte seja opcional, facilita posteriormente a execução de comandos. Se você pular esta etapa, precisará fornecer o caminho completo para o openssl.exe, onde executará o comando. Se você preferir defini-lo, atualize o caminho openssl.exe em Variáveis de ambiente.
ETAPA 3
Crie uma pasta chamada "chave" no
c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/
diretório.Crie o arquivo de configuração para o CA MyCompanyCA.cnf com o conteúdo (você pode alterá-lo conforme suas necessidades):
Crie o arquivo de configuração de extensões MyCompanyLocalhost.ext para o certificado do servidor da web:
PASSO 4
Execute estes comandos na ordem especificada para gerar a chave e os certificados:
Como resultado, você terá os arquivos MyCompanyCA.cer , MyCompanyLocalhost.cer e MyCompanyLocalhost.pvk .
PASSO 5
Instale MyCompanyCA.cer em
Para instalar o MyCompanyLocalhost.cer, clique duas vezes nele.
PASSO 6
Abra
c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/httpd.conf
e remova o comentário (remova o #) das três linhas a seguir:PASSO 7
Abra
c:/wamp64/bin/apache/apache2.4.37/conf/extra/httpd-ssl.conf
e altere todos os parâmetros para os mostrados abaixo:Nota: Esta é a parte complicada. Se você cometer algum pequeno erro ao editar este arquivo, o SSL não funcionará. Faça uma cópia antes de editá-lo.
PASSO 8
Reinicie o Wamp e o Chrome. O host local agora está seguro: https: // localhost
fonte
Este tutorial do CentOS foi fácil de seguir e levou apenas 5 minutos: https://wiki.centos.org/HowTos/Https
Não detalharei cada etapa aqui, mas as principais etapas são:
1.) Instale o módulo openssl para o apache, se ainda não estiver instalado
2.) Gere um certificado autoassinado
- Neste ponto, você poderá visitar https: // localhost êxito
3.) Configure um host virtual, se necessário
fonte
Isso funcionou no Windows 10 com Apache24:
1 - Adicione isso na parte inferior de
C:/Apache24/conf/httpd.conf
2 - Adicione os arquivos
server.crt
eserver.key
noC:/Apache24/conf/ssl
pasta. Veja outras respostas nesta página para encontrar esses 2 arquivos.É isso aí!
fonte
tl; dr
E seu ambiente local pode ser acessado em https://youruniquesubdomain.serveo.net
Serveo é o melhor
Eu não podia acreditar quando encontrei este serviço. Oferece tudo e é o mais fácil de usar. Se houvesse uma ferramenta tão fácil e indolor para todos os problemas ...
fonte
Executando o Apache no Windows 10 aqui. Não consegui que o Chrome confiasse no certificado feito na resposta superior de Simon. O que acabei fazendo foi usar o PowerShell para gerar um certificado autoassinado.
Etapa 1 - Gerar certificado autoassinado
No PowerShell
New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"
1Etapa 2 - Configurar e exportar certificado
Digite
Certificate
na barra de pesquisa do Windows, clique noManage Computer Certificates
item do painel de controle sugerido.No programa de Gerenciamento de Certificados que aparece (certlm), você deve ver uma
localhost
chave abaixoPersonal >> Certificates
.Copiei este certificado para
Trusted Root Certification Authorities
. Serei sincero, pois não tenho certeza se isso é necessário.Selecionando o certificado recém-copiado, clique duas vezes nele (o certificado de host local). No modal Certificado, clique na
Details
guia e noCopy to File...
botão.Isso exibirá o Assistente de Exportação; optei por exportar a chave privada, clique em Avançar. Também escolhi
Export all extended properties
(novamente, não tenho certeza se isso era necessário). Eu escolhi usar uma senha simples (pass
) e a criptografia padrão. Escolha uma pasta para a qual exportar e nomeie o arquivo. Você sempre pode mover e renomear o arquivo, se necessário. Por uma questão de simplicidade, copie-o para sua pasta conf na instalação do Apache (no meu casoC:\apache\conf
:) e nomeie o arquivomyCert
(o arquivo resultante será um.pfx
arquivo)Etapa 3 - Converter
.pfx
arquivo para uso com ApacheA partir daqui, basicamente segui o tutorial aqui , mas adicionarei instruções aqui (ajustadas para nossas configurações), caso o site seja desativado.
Abra o prompt de comando na
/apache/conf/
pastaExecute os seguintes comandos: Nota: Isso pressupõe que você esteja
openssl.exe
nabin
pasta na pasta raiz do apache (isso deve ser padrão / padrão)Isso solicitará uma senha, digite o que você inseriu na Etapa 2 quando exportou o
.pfx
arquivo. No meu caso, é issopass
. Digitei a mesma senha para a frase PEM e novamente para verificar. Isso criará um novo arquivo chamadoprivateKey.pem
na sua pasta conf.Então corra
Novamente, você será solicitado a fornecer uma senha (
Enter pass phrase for privateKey.pem:
), use a senha que você definiuprivateKey.pem
. (No meu caso,pass
)Você deverá ver uma mensagem que diz
writing RSA key
e um novo arquivo chamadoprivate.pem
em suaconf/
pasta. Este será o seu SSLCertificateKeyFile.Agora, para gerar o certificado do servidor correspondente. Corre:
Isso solicitará uma senha, digite o que você inseriu na Etapa 2 quando exportou o
.pfx
arquivo. Digite e agora você terá um arquivo chamadoEntrustCert.pem
em suaconf
pasta. Este é o seu SSLCertificateFileEtapa 4 - Configurar
httpd.conf
Use os novos arquivos criados como a chave e o certificado do servidor. Certifique-se de alterar a raiz do documento para onde estão seus arquivos!
Também em
httpd.conf
:LoadModule ssl_module modules/mod_ssl.so
está comentado (não#
na frente)LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule http2_module modules/mod_http2.so
Include conf/extra/httpd-ssl.conf
(NOTA: verifique se é onde está o arquivo!)Também tenho bibliotecas curl e ssl abertas incluídas:
Esses módulos não devem ser necessários, mas observarei que os tenho habilitados:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so
Etapa 5 - Configuração
httpd-ssl.conf
Na
extra/
pasta daconf/
pasta, você deverá ver um arquivo chamadohttpd-ssl.conf
.5a Altere o
DocumentRoot
- AltereDocumentRoot
do padrão para o diretório em que seus arquivos estão.5b Altere o
ServerName
- AltereServerName
do padrão (algo comowww.example.com:443
) paralocalhost:443
5c. Altere
SSLCertificateFile
Alterar
SSLCertificateFile
do padrão (${SRVROOT}/conf/server.crt
) para${SRVROOT}/conf/EntrustCert.pem
5c. Altere
SSLCertificateKeyFile
Alterar
SSLCertificateKeyFile
do padrão (${SRVROOT}/conf/server.key
) para${SRVROOT}/conf/private.pem
Todos juntos, na
<VirtualHost _default_:443>
tag.Reinicie o Apache
Depois de fazer essas alterações, você poderá reiniciar o Apache e navegar para https: // localhost sem um aviso de segurança e um pequeno cadeado!
Espero que isso ajude alguém! 😊
Fontes:
1.) Resposta de Auri Rahimzadeh na criação de um certificado autoassinado
2.) Entrust Datacard - Como converter um .pfx para ser usado com um servidor Apache?
fonte
Outro método simples é usar o Python Server no Ubuntu.
Gere server.xml com o seguinte comando no terminal:
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
Nota: Supondo que você tenha o openssl instalado.
Salve o código abaixo em um arquivo nomeado
simple-https-server.py
em qualquer diretório em que você deseja executar o servidor.Execute o servidor no terminal:
python simple-https-server.py
Visite a página em:
https://localhost:4443
Notas extras ::
Você pode alterar a porta no
simple-https-server.py
arquivo na linhahttpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
Você pode mudar
localhost
para o seu IP na mesma linha acima:httpd = BaseHTTPServer.HTTPServer(('10.7.1.3', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
e acesse a página em qualquer dispositivo conectado à sua rede. Isso é muito útil em casos como "você precisa testar a API de localização geográfica do HTML5 em um dispositivo móvel, e o Chrome restringe a API apenas em conexões seguras".
Gist: https://gist.github.com/dergachev/7028596
http://www.piware.de/2011/01/creating-an-https-server-in-python/
fonte
Para aqueles que usam o macOS, este é um ótimo guia https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions para configurar seu ambiente de desenvolvimento da Web local. Na sua terceira parte, https://getgrav.org/blog/macos-sierra-apache-ssl Andy Miller explica como configurar o apache com um certificado autoassinado:
Este é o comando principal:
Mas há alguns passos que você precisa seguir, então confira isso e boa sorte! ;)
fonte
Gostaria de acrescentar algo à resposta muito boa do @CodeWarrior, que funciona perfeitamente no Chrome, mas para o Firefox precisa de uma etapa adicional.
Como o Firefox não transmite os Certificados CA do Windows, por padrão, você precisa continuar
about:config
, role para baixo atésecurity.enterprise_roots.enabled
e altere-o para true.Agora seu certificado deve ser visto como válido também no Firefox.
É claro que isso é apenas para fins de desenvolvimento, pois a confiança no SSL é uma preocupação crítica de segurança e altere essas configurações somente se você conhecer as implicações.
fonte