回答:
私はこれを試したところです。WindowsのローカルホストApacheでいくつかの開発コードをテストする必要がありました。これは、必要以上にWAAAY困難でした。しかし、これは多くの引っ張りの後にうまくいくことができたステップです...
Apacheのインストールが付属していることがわかりましたopenssl.exe
。コピーがない場合は、ダウンロードする必要があります。私のコピーは、私がApache2\bin
以下でそれを参照する方法であるフォルダーにありました。
手順:
Apache2\conf
、フォルダを..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
以下を除くすべての質問を空白のままにできます。
それが完了したら、次のように入力します
..\bin\openssl rsa -in blarg.pem -out blarg.key
次のように入力して、自己署名証明書を生成します。
..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365
Apacheのconf\httpd.conf
ファイルを開き、SSLモジュールが有効になっていることを確認します。この行の先頭にハッシュがあってはなりません。
LoadModule ssl_module modules/mod_ssl.so
一部のApacheインストールでは、SSL構成を別のファイルに配置します。その場合は、SSL confファイルが含まれていることを確認してください。私の場合、この行のコメントを外す必要がありました。
Include conf/extra/httpd-ssl.conf
SSL構成でhttpd-ssl.conf
は、次の行を更新する必要がありました。
SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"
SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)"
DocumentRoot
-これをWebファイルのフォルダーに設定しますServerName
-サーバーのホスト名SSLCertificateFile "conf/blarg.cert"
SSLCertificateKeyFile "conf/blarg.key"
Apacheを再起動します。
https://localhost/
ブラウザに読み込んでみてください。うまくいけば、あなたはこれまでにそれを作りました。この投稿を他の役立つ情報で自由に更新してください。
(スクリーンショットはNeil Obremskiと彼の役立つ記事の厚意により提供されました-今ではかなり古くなっています。)
これにはngrok(https://ngrok.com/)を使用します。ngrokはコマンドラインツールで、localhostのトンネルを作成します。httpとhttpsの両方の接続を作成します。ダウンロード後、以下のコマンドを実行する必要があります:
ngrok http 80
(バージョン2では、構文はngrok http 80です。バージョン2では、任意のポートをトンネリングできます。)
数秒後、2つのURLが表示されます。
http://a_hexadecimal_number.ngrok.com
https://a_hexadecimal_number.ngrok.com
これで、両方のURLがlocalhostを指します。
これはこれを行う最も簡単な方法です
まず、これらのserver.crtおよびserver.keyファイル(添付ファイルで検索)をapache / conf / sslディレクトリにコピーします
次にhttpd.confファイルを開き、次の行を追加します
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>
Webサーバーとの間で送受信される情報のセキュリティを保護するために、クライアントとサーバー間の通信の暗号化を有効にすることをお勧めします。これはしばしばSSLと呼ばれます。
では、Apache2で自己署名証明書を使用してHTTPSをセットアップしましょう。私はあなたが従うべきステップをリストします:
sudo apt-get install apache2
sudoサービスapache2ステータス
出力するはずです
このようなapache2のデフォルトページを取得していることを確認します。
openssl req -x509 -newkey rsa:2048 -keyout mykey.key -out mycert.pem -days 365 -nodes
以下のように、必要に応じて情報を入力してください。
mykey.keyおよびmycert.pemは、現在の作業ディレクトリに作成する必要があります。
sudo cp mycert.pem / etc / ssl / certs
sudo cp mykey.key / etc / ssl / private
sudo a2enmod ssl
このように出力されるはずです
sudo vi /etc/apache2/sites-available/default-ssl.conf
これらの2行を見つけて、証明書とキーのパスに置き換えてください。
初期
最後の
cd / etc / apache2 / sites-available /
sudo a2ensite default-ssl.conf
sudoサービスapache2再起動
自己署名証明書でサーバーを構成したため、表示しようとしているページは安全ではないという警告が表示されます。
default-ssl.conf
しておきます。に名前を変更mycert
しようとしてssl-cert-snakeoil
いましたが、このファイルはすでに存在するため、そのまま使用しました!したがって、Debianで2つのステップを安全にスキップすることができました。
Windows + Apache 2.4、例えば:
httpd.conf
ファイルのssl_moduleのコメントを解除します。
LoadModule ssl_module modules/mod_ssl.so
httpd.conf
ファイルの80ポートと同様に443ポートをリッスンします。
Listen 80
Listen 443
httpd.conf
ファイルに仮想ホストを含めるのコメントを外します。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
VirtualHostを 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>
ポート番号443
とSSL......
行のみが通常のhttp構成と異なります。
設定ファイルを保存し、Apacheサービスを再起動します。その後、https:// localhost /にアクセスできます
Webブラウザーは、最初は安全でないことを警告します。続行を選択してください。
opensslのインストールが手元にあるとすれば、実際には非常に簡単です。(どのプラットフォームにいますか?)
linux / solaris / mac os / xを使用している場合、VanのApache SSL / TLSミニHOWTOは、ここでは再現しない優れたウォークスルーがあります。
ただし、要旨では、自己署名証明書を作成する必要があります。おそらく開発用(つまり、パブリックWebサーバーではない)のlocalhostに対してapacheを実行しているため、自己署名証明書を信頼でき、ブラウザーがスローする警告を無視できることがわかります。
これはUbuntu、Apache2と同様のMintで動作するはずです
それは素晴らしいガイドなので、これに従ってください
そして、あなたのssl.confをこのようにまたは同様に残します
<VirtualHost _default_:443>
ServerAdmin your@email.com
ServerName localhost
ServerAlias www.localhost.com
DocumentRoot /var/www
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
がんばって。
linuxerのこのヘルプを願っています
とても簡単です
次のコマンドを実行するだけです
sudo a2enmod ssl
sudo service apache2 restart
sudo a2ensite default-ssl.conf
これで完了です。
SSLを強制する(httpsを常に使用する)場合は、ファイルを編集します。
sudo nano /etc/apache2/sites-available/000-default.conf
この1行を追加します
<VirtualHost *:80>
. . .
Redirect "/" "https://your_domain_or_IP/"
. . .
</VirtualHost>
その後、再起動します
sudo service apache2 restart
systemctl reload apache2
後に走る必要がありますsudo a2ensite default-ssl.conf
。
私はこれに苦労したのでこの回答を投稿しています。Chromeはセキュリティとして、件名の別名を要求するようにセキュリティを更新しました。これは、回答として投稿されたときに必要ではないため、多くの投稿にはありません。WAMPが既にインストールされていることを前提としています。
ステップ1
OpenSSL Lightをダウンロードしてインストールする
ステップ2(オプション)
この部分はオプションですが、後でコマンドを実行するのが簡単になります。この手順をスキップする場合は、コマンドを実行するopenssl.exeへのフルパスを指定する必要があります。設定する場合は、環境変数のopenssl.exeパスを更新します。
環境変数->システム変数->パス->編集->新規-> c:\ Program Files \ OpenSSL-Win64 \ bin
ステップ3
名前のフォルダを作成し、「キー」にc:/wamp64/bin/apache/apache2.4.27(your version number)/conf/
ディレクトリを。
内容を含むCA MyCompanyCA.cnfの構成ファイルを作成します(必要に応じて変更できます)。
[ 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
Webサーバー証明書用の拡張構成ファイルMyCompanyLocalhost.extを作成します。
subjectAltName = @alt_names
extendedKeyUsage = serverAuth
[alt_names]
DNS.1 = localhost
DNS.2 = mycy.mycompany.com
ステップ4
これらのコマンドを所定の順序で実行して、鍵と証明書を生成します。
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
その結果、MyCompanyCA.cer、MyCompanyLocalhost.cerおよびMyCompanyLocalhost.pvkファイルが作成されます。
ステップ5
MyCompanyCA.cerを以下にインストールします
コントロールパネル->ユーザー証明書の管理->信頼されたルート証明機関->証明書
MyCompanyLocalhost.cerをインストールするには、ダブルクリックします。
ステップ6
次の3行を開いてc:/wamp64/bin/apache/apache2.4.27(your version number)/conf/httpd.conf
、コメントを外します(#を削除します)。
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
ステップ7
c:/wamp64/bin/apache/apache2.4.37/conf/extra/httpd-ssl.conf
すべてのパラメーターを開き、以下に示すパラメーターに変更します。
Directory "c:/wamp64/www"
DocumentRoot "c:/wamp64/www"
ServerName localhost:443
ServerAdmin admin@example.com
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"
注: これはトリッキーな部分です。このファイルの編集中に小さな間違いをすると、SSLは機能しません。編集する前に、コピーを作成してください。
ステップ8
WampとChromeを再起動します。Localhostは安全になりました:https:// localhost
CentOS向けのこのハウツーは簡単に理解でき、約5分しかかかりませんでした:https : //wiki.centos.org/HowTos/Https
ここでは各ステップについて詳しく説明しませんが、主なステップは次のとおりです。
1.)Apacheのopensslモジュールをインストールします(まだインストールされていない場合)。
2.)自己署名証明書を生成する
-この時点で、https:// localhostにアクセスできるはずです。正常
3.)必要に応じて仮想ホストをセットアップする
これは、Apache24を搭載したWindows 10で機能しました。
1-の下部にこれを追加します 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- server.crt
とserver.key
ファイルをC:/Apache24/conf/ssl
フォルダーにます。これらの2つのファイルを見つけるには、このページの他の回答を参照してください。
それでおしまい!
ssh -R youruniquesubdomain:80:localhost:3000 serveo.net
そして、ローカル環境はhttps://youruniquesubdomain.serveo.netからアクセスできます
このサービスを見つけたとき、私は信じられませんでした。それはすべてを提供し、それは使用するのが最も簡単です。すべての問題にそのような簡単で痛みのないツールがあれば...
ここでWindows 10でApacheを実行します。サイモンのトップアンサーで作成された証明書をChromeに信頼させることができませんでした。結局、PowerShellを使用して自己署名証明書を生成しました。
PowerShell
New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"
1で
Certificate
Windowsの検索バーに入力し、Manage Computer Certificates
表示されるコントロールパネルの項目をクリックします。
表示される証明書管理プログラム(certlm)から、のlocalhost
下にキーが表示されPersonal >> Certificates
ます。
この証明書をにコピーしましたTrusted Root Certification Authorities
。正直なところ、それが必要かどうかはわかりません。
新しくコピーした証明書を選択し、それ(ローカルホスト証明書)をダブルクリックします。証明書モーダルで、Details
タブをクリックしてからCopy to File...
ボタンをクリックします。
これにより、エクスポートウィザードが表示されます。秘密鍵をエクスポートすることを選択し、[次へ]をクリックします。私も選択しましたExport all extended properties
(ここでも、それが必要かどうかはわかりません)。単純なパスワード(pass
)とデフォルトの暗号化を使用することにしました。エクスポート先のフォルダーを選択し、ファイルに名前を付けます。必要に応じて、いつでもファイルを移動して名前を変更できます。簡単にするために、Apacheインストールの下のconfフォルダーにコピーして(私の場合:)C:\apache\conf
、ファイルに名前を付けますmyCert
(結果のファイルはファイルになり.pfx
ます)。
.pfx
Apacheで使用するためのファイルの変換ここからは基本的にここでチュートリアルに従いましたが、サイトがダウンした場合に備えて、ここで(設定を微調整した)手順を追加します。
であなたのコマンドプロンプトを開き/apache/conf/
、フォルダ
:次のコマンドを実行します。注:これは、あなたが持っていると仮定しopenssl.exe
でbin
(これは標準/デフォルトでなければなりません)Apacheのルートフォルダ内のフォルダ
..\bin\openssl pkcs12 -in myCert.pfx -nocerts -out privateKey.pem
これにより、パスワードの入力を求められ.pfx
ます。ファイルをエクスポートしたときに、ステップ2で入力したものを入力します。私の場合、これはpass
です。確認のため、PEMフレーズに同じパスワードを繰り返し入力しました。これprivateKey.pem
により、confフォルダーに新しいファイルが作成されます。
次に、実行します
..\bin\openssl rsa -in privateKey.pem -out private.pem
もう一度パスワードの入力を求められます(Enter pass phrase for privateKey.pem:
)privateKey.pem
。設定したパスワードを使用します。(私の場合、pass
)
というメッセージが表示され、フォルダにwriting RSA key
新しいファイルが呼び出さprivate.pem
れconf/
ます。これがSSLCertificateKeyFileになります。
次に、対応するサーバー証明書を生成します。実行:
..\bin\openssl pkcs12 -in myCert.pfx -clcerts -nokeys -out EntrustCert.pem
これにより、パスワードの入力が求められ、.pfx
ファイルをエクスポートしたときにステップ2で入力した内容を入力します。それを入力するとEntrustCert.pem
、conf
フォルダにファイルが呼び出されます。 これはあなたのSSLCertificateFileです
httpd.conf
サーバーのキーと証明書として作成された新しいファイルを使用します。必ずドキュメントルートをファイルの場所に変更してください。
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>
またでhttpd.conf
:
LoadModule ssl_module modules/mod_ssl.so
コメントされていないことを確認してください(#
前にない)LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule http2_module modules/mod_http2.so
Include conf/extra/httpd-ssl.conf
(注:ファイルの場所を確認してください!)curlおよびopen sslライブラリも含まれています。
# load curl and open ssl libraries
LoadFile "C:\php\libeay32.dll"
LoadFile "C:\php\ssleay32.dll"
LoadFile "C:\php\libssh2.dll"
これらのモジュールは必要ないはずですが、有効になっていることに注意します。
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so
httpd-ssl.conf
でextra/
フォルダconf/
のフォルダあなたはと呼ばれるファイルが表示されるはずですhttpd-ssl.conf
。
5a。変更DocumentRoot
-をDocumentRoot
デフォルトからファイルがあるディレクトリに変更します。
5b。変更ServerName
-をServerName
デフォルト(のようなものwww.example.com:443
)からlocalhost:443
5c。変更SSLCertificateFile
の変更SSLCertificateFile
デフォルトから(${SRVROOT}/conf/server.crt
までに)${SRVROOT}/conf/EntrustCert.pem
5c。変更SSLCertificateKeyFile
の変更SSLCertificateKeyFile
デフォルトから(${SRVROOT}/conf/server.key
までに)${SRVROOT}/conf/private.pem
まとめて、<VirtualHost _default_:443>
タグで。
# General setup for the virtual host
DocumentRoot "${SRVROOT}/htdocs/MYSITE"
ServerName localhost:443
ServerAdmin admin@example.com
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"
これらの変更を行った後、Apacheを再起動して、セキュリティ警告と小さな南京錠なしでhttps:// localhostに移動できるはずです。
これが誰かに役立つことを願っています!😊
出典:
1.)自己署名証明書の作成に関するAuri Rahimzadehの回答
2.)Entrust Datacard-Apacheサーバーで使用する.pfxを変換するにはどうすればよいですか?
別の簡単な方法は、UbuntuでPythonサーバーを使用することです。
ターミナルで次のコマンドを使用してserver.xmlを生成します。
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
注:opensslがインストールされていると仮定します。
名前のファイルにコードの下に保存simple-https-server.py
して任意のサーバーを実行するディレクトリ。
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()
ターミナルからサーバーを実行します。
python simple-https-server.py
次のページにアクセスしてください。
https://localhost:4443
追記::
ファイルのポートsimple-https-server.py
をインラインで変更できます
httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
上記と同じ行でIPに変更localhost
できます。
httpd = BaseHTTPServer.HTTPServer(('10.7.1.3', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
ネットワークに接続されているデバイスのページにアクセスします。これは、「モバイルでHTML5 GeoLocation APIをテストする必要があり、Chromeは安全な接続でのみAPIを制限する」などの場合に非常に便利です。
要旨:https : //gist.github.com/dergachev/7028596
http://www.piware.de/2011/01/creating-an-https-server-in-python/
macOSを使用している人にとって、これはローカルWeb開発環境をセットアップするための優れたガイドhttps://getgrav.org/blog/macos-sierra-apache-multiple-php-versionsです。第3部では、https://getgrav.org/blog/macos-sierra-apache-ssl Andy Millerが自己署名証明書でApacheを設定する方法を説明しています。
これが重要なコマンドです。
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
しかし、あなたが従う必要があるいくつかのステップがあるので、それをチェックして、幸運を!;)
@CodeWarriorの非常に良い答えに何かを追加したいのですが、Chromeで完全に動作しますが、Firefoxの場合は追加の手順が必要です。
FirefoxはWindowsがデフォルトで行うCA証明書を推力しないので、に進みabout:config
、下にスクロールしてsecurity.enterprise_roots.enabled
てtrueに変更する必要があります。
これで、Firefoxでも証明書が有効であると見なされます。
もちろん、これは開発目的のみです。ssl信頼はセキュリティ上の重要な懸念事項であり、影響がわかっている場合にのみこの設定を変更してください。
ssh -R youruniquesubdomain:80:localhost:3000 serveo.net
サブドメインとポート番号をhttps://youruniquesubdomain.serveo.net