Câu trả lời:
Tôi vừa thử điều này - Tôi cần kiểm tra một số mã phát triển trên localhost Apache của tôi trên Windows . Đây là WAAAY khó khăn hơn nó nên được. Nhưng đây là các bước quản lý để hoạt động sau khi nhổ lông nhiều ...
Tôi thấy rằng bản cài đặt Apache của tôi đi kèm với openssl.exe
nó rất hữu ích. Nếu bạn không có bản sao, bạn sẽ cần tải xuống. Bản sao của tôi là trong Apache2\bin
thư mục đó là cách tôi tham khảo nó bên dưới.
Các bước:
Apache2\conf
thư mục..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
Bạn có thể để trống tất cả các câu hỏi ngoại trừ:
Khi hoàn thành, gõ
..\bin\openssl rsa -in blarg.pem -out blarg.key
Tạo chứng chỉ tự ký của bạn bằng cách gõ:
..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365
Mở conf\httpd.conf
tệp của Apache và đảm bảo mô-đun SSL được bật - sẽ không có băm khi bắt đầu dòng này:
LoadModule ssl_module modules/mod_ssl.so
Một số cài đặt Apache đặt cấu hình SSL trong một tệp riêng. Nếu vậy, hãy đảm bảo rằng tệp conf conf SSL đang được đưa vào. Trong trường hợp của tôi, tôi đã phải bỏ dòng này:
Include conf/extra/httpd-ssl.conf
Trong cấu hình SSL, httpd-ssl.conf
tôi phải cập nhật các dòng sau:
SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"
SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)"
DocumentRoot
- đặt thư mục này vào thư mục cho các tệp web của bạnServerName
- tên máy chủ của máy chủSSLCertificateFile "conf/blarg.cert"
SSLCertificateKeyFile "conf/blarg.key"
Khởi động lại Apache.
https://localhost/
trong trình duyệt của bạn.Hy vọng bạn đã làm cho nó đến nay. Hãy cập nhật bài viết này với bất kỳ thông tin hữu ích khác.
(Ảnh chụp màn hình lịch sự của Neil Obremski và bài viết hữu ích của anh ấy - mặc dù hiện đã khá lỗi thời.)
Tôi sử dụng ngrok ( https://ngrok.com/ ) cho việc này. ngrok là một công cụ dòng lệnh và tạo một đường hầm cho localhost. Nó tạo ra cả kết nối http và https. Sau khi tải xuống, lệnh sau cần được chạy:
ngrok http 80
(Trong phiên bản 2, cú pháp là: ngrok http 80. Trong phiên bản 2, bất kỳ cổng nào cũng có thể được tạo đường hầm.)
Sau vài giây, nó sẽ cho hai url:
http://a_hexadecimal_number.ngrok.com
https://a_hexadecimal_number.ngrok.com
Bây giờ, cả các url đều trỏ đến localhost.
đây là cách đơn giản nhất để làm điều này
đầu tiên sao chép các tệp server.crt & server.key (tìm trong tệp đính kèm) vào thư mục apache / conf / ssl của bạn
sau đó mở tệp httpd.conf và thêm dòng sau
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>
Để bảo vệ tính bảo mật của thông tin được gửi đến và từ máy chủ web của bạn, bạn nên cho phép mã hóa thông tin liên lạc giữa máy khách và máy chủ. Điều này thường được gọi là SSL .
Vì vậy, hãy thiết lập HTTPS với chứng chỉ tự ký trên Apache2. Tôi sẽ liệt kê các bước mà bạn nên làm theo:
sudo apt-get cài đặt apache2
dịch vụ sudo apache2
Nó sẽ xuất
Xác minh rằng bạn nhận được trang mặc định cho apache2 như thế này.
openssl req -x509 -newkey rsa: 2048 -keyout mykey.key -out mycert.pem -days 365 -nodes
Vui lòng điền thông tin phù hợp như hình dưới đây.
mykey.key và mycert.pem nên được tạo trong thư mục làm việc hiện tại của bạn.
sudo cp mycert.pem / etc / ssl / certs
sudo cp mykey.key / etc / ssl / private
sudo a2enmod ssl
Nó sẽ xuất ra như thế này
sudo vi /etc/apache2/sites-av Available / default-ssl.conf
Vui lòng tìm hai dòng này và thay thế chúng bằng các đường dẫn chứng chỉ và khóa của bạn.
Ban đầu
Sau cùng
cd / etc / apache2 / site-Available /
sudo a2ensite mặc định-ssl.conf
sudo dịch vụ apache2 khởi động lại
Nó sẽ xuất ra một cái gì đó như thế này với một cảnh báo rằng trang bạn sắp xem không an toàn vì chúng tôi đã cấu hình máy chủ với chứng chỉ tự ký.
default-ssl.conf
như vậy. Tôi đã định đổi tên mycert
thành ssl-cert-snakeoil
nhưng tập tin này đã tồn tại nên tôi chỉ sử dụng nó! Vì vậy, tôi đã có thể bỏ qua hai bước trên Debian một cách an toàn.
Windows + Apache 2.4, ví dụ:
uncomment ssl_module trong httpd.conf
tập tin của bạn .
LoadModule ssl_module modules/mod_ssl.so
nghe cổng 443 giống như cổng 80 trong httpd.conf
tệp của bạn .
Listen 80
Listen 443
uncomment Bao gồm máy chủ ảo trong httpd.conf
tệp của bạn .
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
thêm Virtualhost trong của bạn 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>
chỉ có số cổng 443
và SSL......
dòng khác với cấu hình http thông thường.
lưu tập tin cấu hình của bạn và khởi động lại dịch vụ apache. sau đó bạn có thể truy cập https: // localhost /
Trình duyệt web sẽ cảnh báo bạn rằng lần đầu tiên nó không an toàn, chỉ cần chọn tiếp tục.
Nó thực sự khá dễ dàng, giả sử bạn có một cài đặt openssl tiện dụng. (Bạn đang ở nền tảng nào?)
Giả sử bạn đang sử dụng linux / solaris / mac os / x, Apache SSL / TLS mini-HOWTO có một hướng dẫn tuyệt vời mà tôi sẽ không tái tạo ở đây.
Tuy nhiên, tóm tắt điều hành là bạn phải tạo chứng chỉ tự ký. Vì bạn đang chạy apache cho localhost có lẽ là để phát triển (không phải là máy chủ web công cộng), bạn sẽ biết rằng bạn có thể tin tưởng vào chứng chỉ tự ký và có thể bỏ qua các cảnh báo mà trình duyệt của bạn sẽ ném vào bạn.
Đây phải là công việc Ubuntu, Mint tương tự với Apache2
Đây là một hướng dẫn tốt, vì vậy hãy làm theo
và để ssl.conf của bạn như thế này hoặc tương tự
<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
bạn có thể lấy nó.
Hy vọng điều này sẽ giúp cho linuxer
Nó rất đơn giản,
chỉ cần chạy các lệnh sau
sudo a2enmod ssl
sudo service apache2 restart
sudo a2ensite default-ssl.conf
Thế là xong, bạn đã hoàn thành.
Nếu bạn muốn buộc SSL (luôn luôn sử dụng https), hãy chỉnh sửa tệp:
sudo nano /etc/apache2/sites-available/000-default.conf
và thêm một dòng này
<VirtualHost *:80>
. . .
Redirect "/" "https://your_domain_or_IP/"
. . .
</VirtualHost>
sau đó khởi động lại
sudo service apache2 restart
systemctl reload apache2
theo sudo a2ensite default-ssl.conf
.
Tôi đang đăng câu trả lời này vì tôi đã phải vật lộn với điều này và Chrome đã cập nhật bảo mật của họ bằng cách yêu cầu Tên thay thế chủ đề mà rất nhiều bài đăng không có vì nó không bắt buộc khi chúng được đăng dưới dạng câu trả lời. Tôi giả sử rằng WAMP đã được cài đặt.
BƯỚC 1
Tải xuống OpenSSL Light và cài đặt
BƯỚC 2 (Tùy chọn)
Mặc dù phần này là tùy chọn, nhưng nó giúp thực hiện các lệnh sau này dễ dàng hơn. Nếu bạn bỏ qua bước này, bạn sẽ phải cung cấp đường dẫn đầy đủ đến openssl.exe nơi bạn sẽ thực thi lệnh. Nếu bạn muốn đặt nó thì hãy cập nhật đường dẫn openssl.exe trong Biến môi trường.
Biến môi trường -> Biến hệ thống -> Đường dẫn -> Chỉnh sửa -> Mới -> c: \ Tệp chương trình \ OpenSSL-Win64 \ bin
BƯỚC 3
Tạo một thư mục có tên là key key trong c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/
thư mục.
Tạo tệp cấu hình cho CA MyCompanyCA.cnf của bạn với nội dung (bạn có thể thay đổi tệp theo nhu cầu của mình):
[ 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
Tạo tệp cấu hình tiện ích mở rộng MyCompanyLocalhost.ext cho chứng chỉ máy chủ web của bạn:
subjectAltName = @alt_names
extendedKeyUsage = serverAuth
[alt_names]
DNS.1 = localhost
DNS.2 = mycy.mycompany.com
BƯỚC 4
Thực hiện các lệnh này theo thứ tự nhất định để tạo khóa và chứng chỉ:
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
Kết quả là bạn sẽ có các tệp MyCompanyCA.cer , MyCompanyLocalhost.cer và MyCompanyLocalhost.pvk .
BƯỚC 5
Cài đặt MyCompanyCA.cer dưới
Bảng điều khiển -> Quản lý chứng chỉ người dùng -> Cơ quan chứng nhận gốc đáng tin cậy -> Chứng chỉ
Để cài đặt MyCompanyLocalhost.cer, chỉ cần nhấp đúp vào nó.
BƯỚC 6
Mở c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/httpd.conf
và bỏ bình luận (xóa #) 3 dòng sau:
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
BƯỚC 7
Mở c:/wamp64/bin/apache/apache2.4.37/conf/extra/httpd-ssl.conf
và thay đổi tất cả các tham số thành các tham số hiển thị bên dưới:
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"
Lưu ý: Đây là phần khó khăn. Nếu bạn mắc một lỗi nhỏ trong khi chỉnh sửa tệp này, SSL sẽ không hoạt động. Tạo một bản sao của nó trước khi bạn chỉnh sửa nó.
BƯỚC 8
Khởi động lại Wamp và Chrome. Localhost hiện an toàn: https: // localhost
Cách làm này cho CentOS rất dễ theo dõi và chỉ mất khoảng 5 phút: https://wiki.centos.org/HowTos/Https
Tôi sẽ không nêu chi tiết từng bước ở đây, nhưng các bước chính là:
1.) Cài đặt mô-đun openssl cho apache, nếu chưa được cài đặt
2.) Tạo chứng chỉ tự ký
- Tại thời điểm này, bạn sẽ có thể truy cập https: // localhost thành công
3.) Thiết lập máy chủ ảo nếu cần
Điều này hoạt động trên Windows 10 với Apache24:
1 - Thêm cái này ở dưới cùng của 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 - Thêm server.crt
vàserver.key
các tập tin trongC:/Apache24/conf/ssl
thư mục. Xem các câu trả lời khác trên trang này để tìm 2 tệp đó.
Đó là nó!
ssh -R youruniquesubdomain:80:localhost:3000 serveo.net
Và môi trường địa phương của bạn có thể được truy cập từ https://youruniquesubdomain.serveo.net
Tôi không thể tin khi tôi tìm thấy dịch vụ này. Nó cung cấp mọi thứ và nó là dễ sử dụng nhất. Nếu có một công cụ dễ dàng và không đau như vậy cho mọi vấn đề ...
Chạy Apache trên Windows 10 tại đây. Tôi không thể khiến Chrome tin tưởng vào chứng chỉ được Simon đưa ra trong câu trả lời hàng đầu. Điều cuối cùng tôi làm là sử dụng PowerShell để tạo chứng chỉ tự ký.
Trong PowerShell
New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"
1
Nhập Certificate
vào thanh tìm kiếm của Windows, nhấp vàoManage Computer Certificates
mục bảng điều khiển được đề xuất.
Từ chương trình Quản lý chứng chỉ xuất hiện (certlm), bây giờ bạn sẽ thấy một localhost
khóa bên dưới Personal >> Certificates
.
Tôi đã sao chép chứng chỉ này vào Trusted Root Certification Authorities
. Tôi sẽ thành thật rằng tôi không chắc nếu điều đó là cần thiết.
Chọn chứng chỉ mới được sao chép, nhấp đúp vào nó (chứng chỉ localhost). Từ phương thức Chứng chỉ, nhấp vào Details
tab, sau đó là Copy to File...
nút.
Điều này sẽ đưa lên và xuất Wizard, tôi chọn xuất khóa riêng, bấm tiếp theo. Tôi cũng đã chọn Export all extended properties
(một lần nữa, tôi không chắc chắn nếu điều đó là cần thiết). Tôi đã chọn sử dụng một mật khẩu đơn giản ( pass
) và mã hóa mặc định. Chọn một thư mục để xuất và đặt tên tệp. Bạn luôn có thể di chuyển và đổi tên tập tin nếu cần thiết. Để đơn giản, hãy sao chép nó vào thư mục conf của bạn trong phần cài đặt Apache của bạn (Trong trường hợp của tôi C:\apache\conf
:) và đặt tên cho tệp myCert
(tệp kết quả sẽ là một.pfx
tệp)
.pfx
tệp để sử dụng với ApacheTừ đây về cơ bản tôi đã làm theo hướng dẫn ở đây , nhưng tôi sẽ thêm hướng dẫn ở đây (điều chỉnh cho các cài đặt của chúng tôi) trong trường hợp trang web bị sập.
Mở Dấu nhắc lệnh của bạn trong /apache/conf/
thư mục
Chạy các lệnh sau: Lưu ý: Điều này giả sử bạn có openssl.exe
trongbin
thư mục trong thư mục gốc apache (đây phải là tiêu chuẩn / mặc định)
..\bin\openssl pkcs12 -in myCert.pfx -nocerts -out privateKey.pem
Điều này sẽ nhắc bạn nhập mật khẩu, nhập những gì bạn nhập cho Bước 2 khi bạn xuất .pfx
tệp. Trong trường hợp của tôi, đây là pass
. Tôi đã nhập cùng một mật khẩu cho cụm từ PEM và một lần nữa để xác minh. Điều này sẽ tạo ra một tập tin mới được gọi privateKey.pem
trong thư mục conf của bạn.
Sau đó chạy
..\bin\openssl rsa -in privateKey.pem -out private.pem
Một lần nữa, bạn sẽ được nhắc nhập mật khẩu ( Enter pass phrase for privateKey.pem:
), sử dụng mật khẩu bạn đã đặt privateKey.pem
. (Trong trường hợp của tôi, pass
)
Bạn sẽ thấy một thông báo cho biết writing RSA key
và một tệp mới được gọi làprivate.pem
trong conf/
thư mục của bạn . Đây sẽ là SSLCertertKeyFile của bạn.
Bây giờ để tạo Chứng chỉ máy chủ tương ứng. Chạy:
..\bin\openssl pkcs12 -in myCert.pfx -clcerts -nokeys -out EntrustCert.pem
Điều này sẽ nhắc bạn nhập mật khẩu, nhập những gì bạn nhập cho Bước 2 khi bạn xuất .pfx
tệp. Nhập nó và bây giờ bạn sẽ có một tệp được gọi EntrustCert.pem
trongconf
thư mục . Đây là SSLCertertFile của bạn
httpd.conf
Sử dụng các tệp mới được tạo như khóa và chứng chỉ của máy chủ. Hãy chắc chắn để thay đổi gốc tài liệu của bạn đến nơi tập tin của bạn!
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>
Cũng trong httpd.conf
:
LoadModule ssl_module modules/mod_ssl.so
không bị lỗi (không#
ở phía trước)LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule http2_module modules/mod_http2.so
Include conf/extra/httpd-ssl.conf
(LƯU Ý: Đảm bảo rằng tệp nằm ở đâu!)Tôi cũng có các thư viện ssl curl và open bao gồm:
# load curl and open ssl libraries
LoadFile "C:\php\libeay32.dll"
LoadFile "C:\php\ssleay32.dll"
LoadFile "C:\php\libssh2.dll"
Các mô-đun này không cần thiết, nhưng tôi sẽ lưu ý rằng tôi đã bật chúng:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so
httpd-ssl.conf
Trong extra/
thư mục trong conf/
thư mục, bạn sẽ thấy một tệp có tênhttpd-ssl.conf
.
5a. Thay đổiDocumentRoot
- Thay đổi DocumentRoot
từ mặc định sang thư mục chứa tệp của bạn.
5b. Thay đổiServerName
- Thay đổi ServerName
từ mặc định (giống như www.example.com:443
) thànhlocalhost:443
5c. Thay đổi ThaySSLCertificateFile
đổi SSLCertificateFile
từ mặc định ( ${SRVROOT}/conf/server.crt
) thành${SRVROOT}/conf/EntrustCert.pem
5c. Thay đổi ThaySSLCertificateKeyFile
đổi SSLCertificateKeyFile
từ mặc định ( ${SRVROOT}/conf/server.key
) thành${SRVROOT}/conf/private.pem
Tất cả cùng nhau, trong <VirtualHost _default_:443>
thẻ.
# 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"
Sau khi thực hiện những thay đổi này, bạn sẽ có thể khởi động lại Apache và điều hướng đến https: // localhost mà không cần cảnh báo bảo mật và một ổ khóa nhỏ!
Tôi hi vọng điêu nay se giup được ai đo! 😊
Nguồn:
1.) Câu trả lời của Auri Rahimzadeh về việc tạo chứng chỉ tự ký
2.) Entrust Datacard - Làm cách nào để chuyển đổi một .pfx được sử dụng với máy chủ Apache?
Một phương pháp đơn giản khác là sử dụng Python Server trong Ubuntu.
Tạo server.xml bằng lệnh sau trong terminal:
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
Lưu ý: Giả sử bạn đã cài đặt openssl .
Lưu mã dưới đây trong một tệp có tên simple-https-server.py
trong bất kỳ thư mục bạn muốn chạy máy chủ.
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()
Chạy máy chủ từ thiết bị đầu cuối:
python simple-https-server.py
Truy cập trang tại:
https://localhost:4443
Ghi chú thêm ::
Bạn có thể thay đổi cổng trong simple-https-server.py
tập tin trong dòng
httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
Bạn có thể thay đổi localhost
IP của mình trong cùng một dòng trên:
httpd = BaseHTTPServer.HTTPServer(('10.7.1.3', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
và truy cập trang trên bất kỳ thiết bị nào mà mạng của bạn kết nối. Điều này rất tiện lợi trong các trường hợp như "bạn phải kiểm tra API Geo Geo HTML5 trên thiết bị di động và Chrome chỉ giới hạn API trong các kết nối an toàn".
Chuyên gia: https://gist.github.com/dergachev/7028596
http://www.piware.de/2011/01/creating-an-https-server-in-python/
Đối với những người sử dụng macOS, đây là một hướng dẫn tuyệt vời https://getgrav.org/blog/macos-sierra-apache-multipl-php-versions để thiết lập môi trường phát triển web cục bộ của bạn. Trong phần 3 của nó https://getgrav.org/blog/macos-sierra-apache-ssl Andy Miller giải thích cách thiết lập apache với chứng chỉ tự ký:
Đây là lệnh chính:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
Nhưng có một vài bước bạn cần phải làm theo, vì vậy hãy kiểm tra và chúc may mắn! ;)
Tôi muốn thêm một cái gì đó vào câu trả lời rất hay của @CodeWar Warrior, hoạt động hoàn hảo trên Chrome, nhưng đối với Firefox cần thêm một bước.
Vì Firefox không đẩy CA Chứng chỉ mà Windows làm theo mặc định, bạn cần tiếp tục about:config
, cuộn xuốngsecurity.enterprise_roots.enabled
và thay đổi thành đúng.
Bây giờ chứng chỉ của bạn sẽ được xem là hợp lệ trên Firefox.
Tất nhiên điều này chỉ dành cho mục đích phát triển, vì ssl tin tưởng là mối quan tâm bảo mật quan trọng và chỉ thay đổi cài đặt này nếu bạn biết các tác động.
ssh -R youruniquesubdomain:80:localhost:3000 serveo.net
Tát vào tên miền phụ và số cổng của bạn và bạn đã sẵn sàng tiếp tụchttps://youruniquesubdomain.serveo.net