localhostでApacheにHTTPSを許可するにはどうすればよいですか?


193

localhost上のApacheで自己署名証明書を使用してHTTPSをセットアップするように求められましたが、実際にはどうすればよいですか?全く分からない。


1
Serveoを使用してください!ssh -R youruniquesubdomain:80:localhost:3000 serveo.netサブドメインとポート番号をhttps://youruniquesubdomain.serveo.net
平手打ちして、次に

回答:


135

私はこれを試したところです。WindowsのローカルホストApacheでいくつかの開発コードをテストする必要がありました。これは、必要以上にWAAAY困難でした。しかし、これは多くの引っ張りの後にうまくいくことができたステップです...

Apacheのインストールが付属していることがわかりましたopenssl.exe。コピーがない場合は、ダウンロードする必要があります。私のコピーは、私がApache2\bin以下でそれを参照する方法であるフォルダーにありました。

手順:

  1. Apache confフォルダーへの書き込み権限があることを確認してください
  2. でコマンドプロンプトを開きApache2\conf、フォルダを
  3. タイプ
    ..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
  4. 以下を除くすべての質問を空白のままにできます。

    • PEMパスフレーズ:「password」などの一時的なパスワード
    • 共通名:サーバーのホスト名

  5. それが完了したら、次のように入力します
    ..\bin\openssl rsa -in blarg.pem -out blarg.key

  6. 次のように入力して、自己署名証明書を生成します。
    ..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365

  7. Apacheのconf\httpd.confファイルを開き、SSLモジュールが有効になっていることを確認します。この行の先頭にハッシュがあってはなりません。
    LoadModule ssl_module modules/mod_ssl.so

  8. 一部のApacheインストールでは、SSL構成を別のファイルに配置します。その場合は、SSL confファイルが含まれていることを確認してください。私の場合、この行のコメントを外す必要がありました。
    Include conf/extra/httpd-ssl.conf

  9. 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"

  10. Apacheを再起動します。

  11. https://localhost/ブラウザに読み込んでみてください。

うまくいけば、あなたはこれまでにそれを作りました。この投稿を他の役立つ情報で自由に更新してください。

(スクリーンショットはNeil Obremskiと彼の役立つ記事の厚意により提供されました-今ではかなり古くなっています。)


2
ありがとう。また、ErrorLog、TransferLog、CustomLogディレクティブを有効なパスに編集する必要がありました。そうしないと、Apacheが起動しませんでした。
タムリン

1
何らかの理由で、指示が機能しなくなったり不完全になったりする
Jacobian

6
それを機能させるには、httpd.confで次のコメントも外す必要がありました。LoadModule socache_shmcb_module modules / mod_socache_shmcb.so
erik

1
それを機能させるためにさらに2つのステップを実行しました。モジュールLoadModule socache_shmcb_module modules / mod_socache_shmcb.soを追加し、httpd-ssl.confで250行目のCustomLog ".apache24 / logs / ssl_request.log"のsslログパスを修正します\
Wasim A 。

5
.pemファイルと.keyファイルを生成するには、手順2で2つの環境変数を設定する必要がありました。setOPENSSL_CONF = C:\ path \ to \ apache \ Apache2.4.4 \ conf \ openssl.cnf set RANDFILE = C:\ path \ to \ apache \ Apache2.4.4 \ conf \ .rnd
eosphere

57

これには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を指します。


1
@ sudip、ngrokのオープンソースコードは、独自のサーバーで変更なしにホストできるように機能しますか?そうでない場合は、ユーザーのリクエストをngrokなどの外部ホストにリダイレクトすることはできませんので、それはほとんど見かけ上のものです。
パセリエ

2
@Pacerierサーバーで使用するつもりはありません。私はlocalhostで使用しています(ネットワークプロバイダーのBczが動的IPを提供しています)。初めてペイパルIPNテストに使用しましたが、完全に機能しました。なぜ誰かがサーバーでそれをどのような目的で使用するのでしょうか。
sudip

@sudip、目的は明白です。HTTPで動作するコードがHTTPSでも動作できるようにするために、追加のコーディングは必要ありません。
パセリエ2015年

1
これは便利ですが、開発マシンにオープンインターネットへのアクセスを許可するのは信じられないほど安全ではないようです。このようなものを使用すると、セキュリティを意識した雇用主に解雇されます。
Andy M

@YumYumYum。V 1では以前は完全に無料でしたが、v 2ではまだhttpおよびhttpsポートが無料です(ポートの制限に無料プランがあるかどうかはわかりません)。ここで無料プランを確認してください:ngrok.com/product#pricing
sudip

24

これはこれを行う最も簡単な方法です

まず、これらの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>

3
(/etc/apache2/httpd.conf)のモジュールLoadModule ssl_module libexec / apache2 / mod_ssl.soも有効にする必要がありました
Alexey

17
自分で生成するのではなく、信頼できないソースから* .crt * .keyファイルをどのように安全/危険にダウンロードしているのでしょうか。
Petr Peller

4
@PetrPellerはローカル開発用にhttpsを設定しているので、なぜ安全/危険なのか不思議に思う
Anil Gupta

7
それらのファイルを生成する方法の説明は素晴らしいでしょう。未知のソースからファイルをダウンロードすることは悪い習慣であるだけでなく、そのようなリンクがいつか壊れるからです。
Stephan Vierkant 2017

2
このチュートリアルでは、細かいですdigitalocean.com/community/tutorials/...
Dhiraj

11

Webサーバーとの間で送受信される情報のセキュリティを保護するために、クライアントとサーバー間の通信の暗号化を有効にすることをお勧めします。これはしばしばSSLと呼ばれます。

では、Apache2で自己署名証明書を使用してHTTPSをセットアップしましょう。私はあなたが従うべきステップをリストします:

  • マシンにapache2 web-serverをインストールします。Linuxマシンの場合は、ターミナルを開いて次のように入力します

sudo apt-get install apache2

  • インストールが成功したら、コマンドを実行してapache2サービスのステータスを確認します

sudoサービスapache2ステータス

出力するはずです

apache2サービスのステータス

  • ブラウザに移動して入力します

http:// localhost:80

このようなapache2のデフォルトページを取得していることを確認します。

apache2のデフォルト出力

  • Web接続を暗号化するには、CA(認証局)からの証明書が必要です。または、自己署名証明書を使用することもできます。次のコマンドを使用して自己署名証明書を作成してみましょう。

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

以下のように、必要に応じて情報を入力してください。

opensslを使用して自己署名証明書を作成する

mykey.keyおよびmycert.pemは、現在の作業ディレクトリに作成する必要があります。

  • 証明書とキーを共通の場所に移動すれば、apache2 Webサーバーがそれらを簡単に見つけられるようになると便利です。次のコマンドを実行してみましょう

sudo cp mycert.pem / etc / ssl / certs

sudo cp mykey.key / etc / ssl / private

  • サーバーでSSLモードを有効にしましょう

sudo a2enmod ssl

このように出力されるはずです

SSLを有効にする

  • 上記で生成した自己署名証明書とキーを使用するようにapache2を設定してみましょう。

sudo vi /etc/apache2/sites-available/default-ssl.conf

これらの2行を見つけて、証明書とキーのパスに置き換えてください。

初期

default-conf

最後の

構成変更後

  • サイトを有効にする

cd / etc / apache2 / sites-available /

sudo a2ensite default-ssl.conf

  • apache2サービスを再起動します

sudoサービスapache2再起動

  • HTTPSでapache2 Webサーバーを確認します。もう一度ブラウザを開いて入力します

https:// localhost:443

自己署名証明書でサーバーを構成したため、表示しようとしているページは安全ではないという警告が表示されます。

ここに画像の説明を入力してください

  • おめでとう、あなたが今をクリックして、HTTPSエンドポイントであなたのApache2を設定している高度な - > アドオンの例外 - > 確認セキュリティ例外が、あなたは再びデフォルトページが表示されます。

例外を追加した後のページ


できれば設定ファイルを編集したくないので、そのままにdefault-ssl.confしておきます。に名前を変更mycertしようとしてssl-cert-snakeoilいましたが、このファイルはすでに存在するため、そのまま使用しました!したがって、Debianで2つのステップを安全にスキップすることができました。
Rolf

@Rolf同意しますが、本番環境では常に新しい証明書とキーを使用します。そのため、作成方法を示すために、Debianに2つの追加手順を追加しました。ありがとう:)
Dinesh Kumar

9

Windows + Apache 2.4、例えば:

  1. httpd.confファイルのssl_moduleのコメントを解除します。

    LoadModule ssl_module modules/mod_ssl.so
    
  2. httpd.confファイルの80ポートと同様に443ポートをリッスンします。

    Listen 80
    Listen 443
    
  3. httpd.confファイルに仮想ホストを含​​めるのコメントを外します。

    # Virtual hosts
    Include conf/extra/httpd-vhosts.conf
    
  4. 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>
    

ポート番号443SSL......行のみが通常のhttp構成と異なります。

設定ファイルを保存し、Apacheサービスを再起動します。その後、https:// localhost /にアクセスできます

Webブラウザーは、最初は安全でないことを警告します。続行を選択してください。


これは、XP Home、Apache 2.4で動作しました。前の投稿(Anil Guptaによる)の2つの証明書ファイルをコピーしました。コメントが解除されたmod_sslとhttpd.confにhttpd-vhosts.confが含まれ、httpd-vhosts.confにAnil GuptaのVirtualHostディレクティブが追加されました(一部のパスは調整されています)。
jogi99

7

opensslのインストールが手元にあるとすれば、実際には非常に簡単です。(どのプラットフォームにいますか?)

linux / solaris / mac os / xを使用している場合、VanのApache SSL / TLSミニHOWTOは、ここでは再現しない優れたウォークスルーがあります。

ただし、要旨では、自己署名証明書を作成する必要があります。おそらく開発用(つまり、パブリックWebサーバーではない)のlocalhostに対してapacheを実行しているため、自己署名証明書を信頼でき、ブラウザーがスローする警告を無視できることがわかります。


こんにちは、私はWindows OSに取り組んでいます。また、自己署名証明書については、ダウンロードする必要がありますか、それとも他の方法で取得する必要がありますか?
KennC。

3
いいえ。自己署名証明書を自分で作成します。Apache httpd + sslセットアップはありますか?これを行うには、sslが必要です。このサイト:rubayathasan.com/tutorial/apache-ssl-on-windowsには、sslをWindowsで使用するための優れた情報があります。コマンドラインで作業を行うことになりますが、とにかくそれは良いことです。:-)
ピート・クラーク、

3
リンクは死んでいる:(
kpuccino

ええ-それは死んでいるように見えます。それはあなたにとってインターネットです...しかし、@ kayakinkoderによって参照される以下のCentOS Wikiへのリンクも良いです:wiki.centos.org/HowTos/Https Macを使用している場合、この記事も合理的です:要旨。 github.com/nrollr/4daba07c67adcb30693e
ピートクラーク

4

これはUbuntu、Apache2と同様のMintで動作するはずです

それは素晴らしいガイドなので、これに従ってください

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

そして、あなたの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のこのヘルプを願っています


2

とても簡単です

次のコマンドを実行するだけです

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
まで

2

2019アップデート

私はこれに苦労したのでこの回答を投稿しています。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.cerMyCompanyLocalhost.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


1

CentOS向けのこのハウツーは簡単に理解でき、約5分しかかかりませんでした:https : //wiki.centos.org/HowTos/Https

ここでは各ステップについて詳しく説明しませんが、主なステップは次のとおりです。

1.)Apacheのopensslモジュールをインストールします(まだインストールされていない場合)。

2.)自己署名証明書を生成する

-この時点で、https:// localhostにアクセスできるはずです。正常

3.)必要に応じて仮想ホストをセットアップする


1

これは、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.crtserver.keyファイルをC:/Apache24/conf/sslフォルダーにます。これらの2つのファイルを見つけるには、このページの他の回答を参照してください。

それでおしまい!


はい、これでうまくいきます。StephanieQの手順1〜3を使用して証明書を生成し、「openssl x509 -req -in server.csr -signkey server.key -out server.crt」を使用してcygwinで* .crtファイルを生成しました。
b3wii

1

tl; dr

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

そして、ローカル環境はhttps://youruniquesubdomain.serveo.netからアクセスできます

Serveoは最高です

  • サインアップなし。
  • インストールなし。
  • HTTPSを持っています。
  • 世界中からアクセスできます。
  • カスタム修正、サブドメインを指定できます。
  • 自分でホストできるので、独自のドメインを使用でき、サービスが停止した場合でも将来の保証になります。

このサービスを見つけたとき、私は信じられませんでした。それはすべてを提供し、それは使用するのが最も簡単です。すべての問題にそのような簡単で痛みのないツールがあれば...


1

ここでWindows 10でApacheを実行します。サイモンのトップアンサーで作成された証明書をChromeに信頼させることができませんでした。結局、PowerShellを使用して自己署名証明書を生成しました。

手順1-自己署名証明書を生成する

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

手順2-証明書の構成とエクスポート

CertificateWindowsの検索バーに入力し、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ます)。

ステップ3- .pfxApacheで使用するためのファイルの変換

ここからは基本的にここでチュートリアルに従いましたが、サイトがダウンした場合に備えて、ここで(設定を微調整した)手順を追加します。

であなたのコマンドプロンプトを開き/apache/conf/、フォルダ
:次のコマンドを実行します。注:これは、あなたが持っていると仮定しopenssl.exebin(これは標準/デフォルトでなければなりません)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.pemconf/ます。これがSSLCertificateKeyFileになります。

次に、対応するサーバー証明書を生成します。実行:

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

これにより、パスワードの入力が求められ、.pfxファイルをエクスポートしたときにステップ2で入力した内容を入力します。それを入力するとEntrustCert.pemconfフォルダにファイルが呼び出されます。 これはあなたのSSLCertificateFileです

ステップ4-構成 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

ステップ5-構成 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を再起動します

これらの変更を行った後、Apacheを再起動して、セキュリティ警告と小さな南京錠なしでhttps:// localhostに移動できるはずです。

保護されたローカルホスト

これが誰かに役立つことを願っています!😊

出典:
1.)自己署名証明書の作成に関するAuri Rahimzadehの回答
2.)Entrust Datacard-Apacheサーバーで使用する.pfxを変換するにはどうすればよいですか?


0

別の簡単な方法は、UbuntuでPythonサーバーを使用することです。

  1. ターミナルで次のコマンドを使用してserver.xmlを生成します。

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

    注:opensslがインストールされていると仮定します。

  2. 名前のファイルにコードの下に保存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()
    
  3. ターミナルからサーバーを実行します。

    python simple-https-server.py

  4. 次のページにアクセスしてください。

    https://localhost:4443

追記::

  1. ファイルのポートsimple-https-server.pyをインラインで変更できます

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

  2. 上記と同じ行で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/


0

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

しかし、あなたが従う必要があるいくつかのステップがあるので、それをチェックして、幸運を!;)


0

@CodeWarriorの非常に良い答えに何かを追加したいのですが、Chromeで完全に動作しますが、Firefoxの場合は追加の手順が必要です。

FirefoxはWindowsがデフォルトで行うCA証明書を推力しないので、に進みabout:config、下にスクロールしてsecurity.enterprise_roots.enabled てtrueに変更する必要があります。

これで、Firefoxでも証明書が有効であると見なされます。

もちろん、これは開発目的のみです。ssl信頼はセキュリティ上の重要な懸念事項であり、影響がわかっている場合にのみこの設定を変更してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.