Aprenda a configurar o Apache com SSL (Parte II)
Nos dias que correm, é importante que todos os dados sensíveis transaccionados entre um cliente e um servidor sejam cifrados de modo a que estes não possam ser entendidos por terceiros. Na prática, quando acedemos a um serviço online que nos solicita dados pessoais ou credenciais de acesso (ex. sites de bancos) é importante que a toda a informação passada seja cifrada de modo a tornar-se ilegível. No caso dos servidor Web (entre outros serviços de uma rede), uma das formas de proceder a cifra dos dados é recorrendo ao protocolo SSL.
Depois de termos deixado aqui uma breve descrição sobre o que são chaves privadas e chaves publicas, um certificado digital, o protocolo SSL e o OpenSSL, hoje vamos aprender a produzir certificados digitais.
Para a criação do presente tutorial, recorri a uma máquina com o CentOS 6. Como referido no tutorial anterior, o OpenSSL permite criar e entidade de certificação privada e disponibiliza ferramentas para criação e gestão de chaves privadas e publicas e certificados digitais.
Caso não tenham o OpenSSL instalado, podem fazê-lo executando o comando
yum install openssl |
Para podermos emitir um certificado X.509 é importante (apesar de opcional) rever alguns parâmetros no ficheiro de configuração do openSSL. No CentOS o ficheiro de configuração (openssl.cnf) encontra-se em /etc/pki/tls/openssl.cnf e nele podemos definir algumas informações relativamente à entidade certificadora e também indicar o directório onde os certificados vão ser guardados por omissão. De referir que este processo só é necessário efectuar a primeira vez.
################################################################### [ ca ] default_ca = CA_Pplware # The default ca section #################################################################### [ CA_Pplware ] dir = /etc/pki/CA # Where everything is kept certs = $dir/certs # Where the issued certs are kept crl_dir = $dir/crl # Where the issued crl are kept database = $dir/index.txt # database index file. #unique_subject = no # Set to 'no' to allow creation of # several ctificates with same subject. new_certs_dir = $dir/newcerts # default place for new certs. certificate = $dir/cacert.pem # The CA certificate serial = $dir/serial # The current serial number crlnumber = $dir/crlnumber # the current crl number # must be commented out to leave a V1 CR L crl = $dir/crl.pem # The current CRL private_key = $dir/private/cakey.pem# The private key RANDFILE = $dir/private/.rand # private random number file x509_extensions = usr_cert # The extentions to add to the cert # Comment out the following two lines for the "traditional" # (and highly broken) format. name_opt = ca_default # Subject Name options cert_opt = ca_default # Certificate field options # Extension copying option: use with caution. # copy_extensions = copy # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crlnumber must also be commented out to leave a V1 CRL. # crl_extensions = crl_ext default_days = 365 # how long to certify for default_crl_days = 30 # how long before next CRL default_md = default # use public key default MD preserve = no # keep passed DN ordering …… [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = PT countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Guarda localityName = Locality Name (eg, city) localityName_default = Guarda 0.organizationName = Organization Name (eg, company) 0.organizationName_default = Pplware … |
Feitas as alterações, podemos passar de imediato à criação de certificados X.509.
Nota importante: Para que tudo funcione correctamente, é importante que a máquina onde temos o apache a correr tenha um nome. Esse informação pode ser definida em /etc/sysconfig/network no parâmetro HOSTNAME.
Criação de certificados para servidores
Para a criação dos certificados X.509 para o servidor apache devem executar os seguintes 3 passos:
Criação da chave privada RSA para o certificado do servidor
Esta chave RSA ira ser posteriormente utilizada para assinar o CSR (Certificate Signing Request – contem várias informações sobre a entidade a certificar, incluindo a chave publica).
openssl genrsa -des3 -out chaveprivada.key 2048 |
Nota1: Na parte final do processo de criação da chave privada é necessário indicar uma senha.
Criação do CSR para o certificado do servidor
openssl req -new -key chaveprivada.key -out certificado.csr |
Nota2: No campo Common Name (CN) devem colocar o nome do servidor (ex. www.pplware.com)
Emitir certificado X.509 para o servidor indicado
openssl x509 -req -days 365 -in certificado.csr -signkey chaveprivada.key -out www.crt |
Depois de aprendermos alguns conceitos associados à certificação digital e de termos ensinado hoje como criar certificados digitais para um servidor, no próximo artigo iremos ensinar a configurar o Apache para fazer uso dos certificados. Fiquem atentos!
Este artigo tem mais de um ano
E que tal se fizessem também uns tutoriais do WordPress?
Fica o registo 🙂
Já agora, acha que uma pessoa de 12 anos é capaz de aprender a programar em PHP?
com esforço e dedicação td se consegue…. é claro que não consegue fazer tão bem como os profissionais… mas pode fazer algo bom! compra livros e utiliza fóruns…
boa resposta
Consegues perfeitamente. Não é a questão de ser melhor que os profissionais. Nem os que começam aos 18/20 são melhores que os profissionais. Se pesquisares, analisares, tiveres o pensamento adequado de todo o funcionamento e outras coisas que se adquirem à medida que o tempo passa, consegues chegar a um patamar bem alto. Se gostas e tens curiosidade, é meio caminho andado. 😉
Vamos la estudar…nós estamos cá para ajudar.
e que tal um do openvpn? isso é que era de valor…
x2 , openvpn era mesmo interessante!
OpenVPN não é difícil. A minha primeira vez foi sem contar, teve de ser feito e ficou. Ler a documentação que vem com o download é a melhor ajuda. Pode-se configurar o servidor em Linux ou em Windows bem como os clientes. A configuração pode ser feita para aceder apenas ao servidor ou a todos os IPs da rede local remota, nesse caso é necessário configurar o roteamento para a VPN cada IP que se queira tornar acessível. Como cliente normalmente uso o OpenVPN-GUI como cliente de umas 10 VPNs…
Será que isto só me acontece a mim?
http://img96.imageshack.us/img96/8328/errocomentariospplware.png
deve ser quando os coments aguardam moderação…
já agora se alguem souber de bons tutorais do openvon que me avise…. Obrigado!
Como o “helder” disse, isso significa que os comentários não mostrados estão a aguardar aprovação.
Também podiam fazer um artigo sobre o BlueStacks, um programa que permite instalar os apk do Android no PC. Para mim, o único senão é que ainda não tem o teclado português.
http://www.bluestacks.com
PS: Quem quiser os tais 23 GB adicionais no Dropbox, como referido no artigo da Ana Narciso (https://pplware.sapo.pt/internet/dropbox-ganhe-23gb-adicionais-gracas-ao-seu-android/), também pode instalar o apk modificado do Dropbox no BlueStacks, caso não tenha nenhum dispositivo com Android. Eu testei e funciona às mil maravilhas.
Mas nós temos: https://pplware.sapo.pt/windows/software/bluestacks-app-player-traga-android-para-o-seu-pc/
Então foi aqui que eu o descobri.
Já me tinha esquecido, desculpa.
Mais uma coisa, o BlueStacks não tem acesso ao Google Play (antigo Android Market), mas vem com outros markets instalados de origem.
Boa… Número 2 😀
Venha daí o próximo 😀
Cumprimentos
Pedro